SQL database engine written in Java
JDBC and ODBC APIs are supported. Embedded and server modes are available. A Web console application is included. Clustering is supported. Here are some key features of \"H2 Database Engine\":
· Fast database engine
· Free, source code is included
· Supports standard SQL
· Written in Java
· Disk based or in-memory databases
· Browser base Console application
· JDBC API
· Limited ODBC support
· Embedded and client/server (network) mode
· High availablility support (clustering / failover)
· Wide range of data types including large objects (BLOB/CLOB)
· Strong security features (SSL, users, roles, encrypted files)
· Multiple connections, table level locking
· Cost based optimizer, using a genetic algorithm for complex queries
· Transaction support (serializable transaction isolation)
· Zero-administration, automatic recovery
· Large resultset, external sorting
· Scrollable and updatable resultset support
· Read only views and inline views
· Inner and outer joins, subqueries
· Many functions already built-in
· Triggers and Java functions / stored procedures
· Referential integrity / foreign key constraints with cascade, check constraints
· Multiple schema support
· Compatibility modes for HSQLDB, MySQL and PostgreSQL
· Sequence and autoincrement columns
· Well tested (high code coverage, randomized stress tests)
· Small footprint (smaller than 1 MB)
· Uses a small number of database files
· Can be compiled to native code using GCJ
· Primary keys, multiple index types (b-tree, linear hash, tree, hash)
· ORDER BY, GROUP BY, HAVING, UNION, LIMIT
· Information Schema
· Multiple connections
· Collation support
· EXPLAIN PLAN support
· The database can generate SQL script files
· Support for linked tables, and a built-in virtual \'range\' table
· Automatic re-compilation of prepared statements
· Sophisticated trace options
· Low memory requirements
· Easy to understand exception messages
· Standard handling of NULL values
· Multilanguage console application (at this time, English and German)
What\'s New in This Release: [ read full changelog ]
· Issue 351: MySQL mode: can not create a table with the column \"KEY\", and can not open databases where such a table already exists.
· TCP server: when using the trace option (\"-trace\"), the trace output contained unnecessary stack traces when stopping the server.
· Issue 354: when using the multi-threaded kernel option, and multiple threads concurrently prepared SQL statements that use the same view or the same index of a view, then in some cases an infinite loop could occur.
· Issue 350: when using instead of triggers, executeUpdate for delete operations always returned 0.
· Some timestamps with timezone were not converted correctly. For example, in the PST timezone, the timestamp 2011-10-26 08:00:00Z was converted to 2011-10-25 25:00:00 instead of 2011-10-26 01:00:00. Depending on the database operation, this caused subsequent error.
· Sequences with cache size smaller than 0 did not work correctly.
· Issue 356: for Blob objects, InputStream.skip() returned 0, causing EOFException i...