Projects / hsqldb Database Engine

hsqldb Database Engine

HSQLDB (HyperSQL DataBase) is an SQL relational database engine written in Java. It supports nearly full ANSI-92 SQL and SQL:2008 enhancements. It is a small, fast multithreaded, and transactional database engine which offers in-memory and disk-based tables and supports embedded and server modes.

Tags
Licenses
Operating Systems
Implementation

RSS Recent releases

  •  09 Jun 2010 21:33

Release Notes: This version follows the SQL:2008 Standard and supports more SQL features than other major open source RDBMS. Advanced data types, such as datetime INTERVAL and ARRAY types, together with query features such as FULL and LATERAL joins are supported. Full support was added for procedural SQL, including SQL/PSM functions, procedures and triggers, together with more extensive suport for Java routines. A dedicated high-performance LOB store makes this version ideal for high volume content managment systems.

  •  08 Feb 2005 00:09

Release Notes: A bug with logging deletes and updates from tables without primary keys was fixed. Conversions from BIGINT to SAMMLINT and TYNYINT are now allowed. An issue with null values in calls to ResultSet methods with a Calendar argument was fixed. INSERT INTO [T] SELECT (....) is now allowed where no column list is specified. The scripting of CHECK constraints with NOT NULL and IS NULL was corrected. An NPE error when functions are in subqueries was fixed. Support for various set functions was added, and issues with logging DELETE statements for tables with multi-key primary keys were fixed.

Release Notes: Code needed for embedding into OpenOffice.org was added. A rewritten implementation of Cache is included. Reuse of file space when rows are deleted was improved. This is aimed primarily at JBoss usage, which involves a million or more insert/delete/update operations per day and results in much smaller .data files over time. Performance has been improved in certain areas, such as recovery after an abnormal termination. Enhancements were made to DatabaseManagerSwing.

  •  10 Dec 2004 02:10

Release Notes: This version features improved conformance to SQL standards by supporting the UNDEFINED state for the BOOLEAN type. This change has an effect in query conditions and check constraints when values include a NULL.

  •  10 Dec 2004 02:10

Release Notes: This release features newly written code for system tables, multiple database support, better query processing, and more advanced SQL keywords, etc.

RSS Recent comments

24 Feb 2005 01:14 dedmike

Changes to hsqldb v.1.8.0 since RC5
2005.02.11 1.8.0.RC8

Fixed minor bugs

Added public shutdown() method to Server.

A new application log has been introduced as an optional feature. The property/value pair

"hsqldb.applog=1" can be used in the first connection string to log some important messages.

The default is "hsqldb.applog=0", meaning no logging. A file with the ending ".app.log" is

generated alongside the rest of the database files for this purpose.

In the current version only the classes used for file persistence (different in OpenOffice.org),

plus any error encountered while processing the .log file after an abnormal end is logged.

Bob Preston has updated the text table support to accept new line characters inside quoted

strings. It is still not possible to create / modify a row containing a new line inside the engine.

This will be a simple upgrade and will be included in the next RC.

Note that the JDBC driver and the engine for 1.8.0 cannot be mixed with those of earlier

versions in client/server setup. Check your classpaths and use the same version of the engine

for both client and server.

2005.01.28 1.8.0.RC7

Fixed minor bugs

08 Feb 2005 00:01 dedmike

Release of Version 1.7.3.3
HSQLDB 1.7.3 CHANGE LOG

Version 1.7.2 was regularly updated after the initial release with bug fixes, leading to revision 1.7.2.10. In the meantime new work was carried out by Thomas Mueller on SQL Standard handling of NULL values and the BOOLEAN type. Towards the end of 2004, this work was included in a new version 1.7.3.

Bug fixes and enhancements in 1.7.3 up to revision 1.7.3.3:

Fixed bug with logging of deletes / updates from tables without primary keys. If the a row from such tables contained a null value and was deleted / updated, the operation was not logged correctly. Subsequently, if there was an abnormal termination after such changes and the database was restarted, the logged delete statement would not have any effect and result in duplicate rows. This bug did not affect tables with primary keys or the normal operation

(without abnormal termination) of any tables.

Allow conversion from BIGINT to SAMMLINT and TYNYINT (all other legal conversions worked fine)

Fixed issue with null values in calls to ResultSet methods with a Calendar argument.

Enhancement to allow INSERT INTO <T> SELECT (....) where no column list list for the table T is specified.

Corrected scripting of CHECK constraints with NOT NULL and IS NULL

Fixed NPE error when functions in subqueries.

Added support for STDDEV_POP, STDDEV_SAMP, VAR_POP, VAR_SAMP, EVERY and SOME set functions.

Fixed potential issues with logging DELETE statements for tables with multi-key primary keys.

25 Jan 2005 02:23 dedmike

1.8.0 RC5 Changes
2005.01.24 1.8.0.RC5

Issues with SET CHECKPOINT DEFRAG fixed

New property for larger data file limits is introduced. Once set, the limit will go

up to 8GB. The property can be set with the following SQL command only when the database

has no tables (new database).

SET PROPERTY "hsqldb.cache_file_scale" 8

To apply the change to an existing database, SHUTDOWN SCRIPT should be performed first,

then the property=value line below should be added to the .properties file before reopenning

the database.

hsqldb.cache_file_scale=8

It is now possible to add or drop a primary key.

An existing primary key that is to be removed should not be referenced in a FOREIGN KEY

constraint. If a table has an IDENTITY column, removing a primary key will remove the

identity attribute of the column but leave the actual data.

When adding a primary key, a NOT NULL constraint is automatically added to the column definitions.

The table data for the columns of a newly declared primary key should not contain null values.

ALTER TABLE <name> ADD CONSTRAINT <cname> PRIMARY KEY(collist);

ALTER TABLE <name> DROP CONSTRAINT <cname>;

ALTER TABLE <name> DROP PRIMARY KEY; // alternative syntax

Fred Toussi

hsqldb Project Maintainer

22 Jan 2005 15:30 dedmike

1.8.0 to RC4
RC1 Notes:

This release features the code needed for embedding into OpenOffice.org,
added by Ocke Janssen of OOo.

There are lots of code enhancements which were originally developed for
HyperXtremeSQL (www.hxsql.com). These include a rewritten
implementation of Cache and related functionality and some refactorings
aimed at better separation of concerns.

1.8.0.RC1 also improves reuse of file space when rows are deleted. This is
aimed primarily at JBoss usage which involves a million or more
insert/delete/update ops per day and results in much smaller .data files
over time.

Performance has been improved in certain areas, such as recovery after an
abnormal termination.

Enhancements to DatabaseManagerSwing, contributed by Ed Taylor, are also
included.

RC2 Notes:

Bugs related mainly to failure to keep the data backup file and similar have
been fixed in this version. It is certainly getting more like a full
release. Tests indicate that overall performance is up to 10% better than
1.7.3.

RC3 Notes:

A couple of bugs have been fixed in this RC.

There is also a new mechanism to automate the defragmentation of the .data
file. This and previous improvments should allow a JBoss installation of
HSQLDB to work seamlessly for an indefinite period without running out of
.data file space.

RC4 Notes:

This version restores support for text tables and fixes a few bugs.

Please note that as a result of introduction of support for extended
ResultSetMetaData in client/server mode, you need to use RC4 both as client
and server.

27 May 2004 10:53 jimcp Thumbs up

Schema's
Schema's aren't supported in HSQL. You have to use a workaround... Create a table name between double quotes like "schema.tablename". The table is created in the sa schema but it looks as though it is created in it's own schema. That's why I rated this db with 9 stars as an in-memory lightweight database. Don't compare it with what it is not, it wouldn't be fair.

Screenshot

Project Spotlight

CyaSSL

A lightweight SSL/TLS library supporting up to TLS 1.2 and DTLS 1.2.

Screenshot

Project Spotlight

P6Spy

Intercepts and logs database statements of applications using JDBC