05 August 2012 - version 2.2.9 -- code review and minor fixes -- improved support for use in OO and LO version 3.2 and later -- new simple connection pool class org.hsqldb.jdbc.JDBCPool 2 July 2012 SVN 5017 snapshot -- added integrated support for large data -- enhanecments to Servlet and WebServer 28 June 2012 SVN 5009 snapshot -- improved optimisation of queries with views and subqueries -- improved support for complex, nested queries -- improved name resolution in SQL statements in functions and triggers 4 June 2012 SVN 4997 -- fixed issue with server sometimes not exiting at shutdown -- fixed regression with recursive queries -- END is no longer a reserved keywords -- property for SQL logging is now persisted 14 May 2012 SVN 4991 -- fixed issues with hot backup -- improved name resolution with nested subqueries -- improved support for collations with NO PAD -- added support for MySQL style DATE_ADD, DATE_SUB and interval expressions 22 April 2012 - SVN 4977 -- fixed issue with datetime TRUNC and ROUND functions -- fixed issues with a number of functions -- fixed issue causing reduced speed and memory leak with disk based result sets -- fixed issues with comparison of lobs and lobs file exceeding 2GB -- extended batch execution to procedure calls 26 February 2012 - SVN 4944 -- fixed regression in DECODE function -- fixed issue with ROWNUM when correlated supqueries were used -- added support for COUNT(DISTINCT ...) with multiple arguments -- added support for SQL log level 1-3 -- extended ORA syntax compatibility mode -- improved garbage collection of dropped MEMORY and TEXT tables -- improved name resolution with joined tables 28 January 2012 - SVN 4925 -- fixed issue with min(), max() optimisation for indexed columns -- fixed issue with some usages of UNNEST -- fixed issue with some NOT IN usage with NULL in list 22 January 2012 - version 2.2.8 -- fixed regression since 2.2.6 that affected database crash recovery -- added support for hot backup 14 January 2012 - version 2.2.7 -- fixed issue with NPE thrown with nio data files -- added SET DATABASE SQL NULLS FIRST and the property sql.nulls_first for the default sort order of nulls -- added SET DATABASE SQL SYNTAX DB2 and the property sql.syntax for DB2 syntax compatibility -- extended SET DATABASE SQL AVG SCALE and the property sql.avg_scale to the results of division -- changed the JDBC object returned for INTERVAL values to String for the default jdbc.translate_tti_types=true setting -- improved syntax compatibility modes -- several minor improvements and bug fixes 19 November 2011 - version 2.2.6 -- fixed issue with memory use of large strings in cache -- fixed issue with FOR loops with ORDER BY in routines -- fixed issue with TIME ZONE types JDBC type reporting in server -- fixed issue with type resolution of arrays -- fixed issue with identical prepared statements in session -- fixed issue with cached tables in jar databases -- fixed issue with certain server properties -- fixed issues with MVCC transactions -- fixed issue with some row comparison predicates -- added code branch supporting huge multi terabyte databases with tens of billions of rows -- added property sql.avg_scale for decimal results from AVG and MEDIAN aggregates -- added support for AVG with datetime types -- added two-arg REPLACE function -- added new datetime and bit functions -- added support for ROWNUM() in UPDATE and DELETE statements -- added backward compatibility for IDENTITY options with commas -- added support for new SQL properties -- added Gradle build -- improved SYSDATE, NOW and similar functions to accept optional empty arg list -- improved JDBC support for LOBs -- improved concurrency of CREATE and DROP DDL operations -- improved data type determination for dynamic variables -- improved routine variable scope in MERGE statements -- improved compatibility modes -- improved persistence reliability -- many minor improvements and bug fixes -- major improvements to SqlTool 5 July 2011 - version 2.2.5 -- fixed UNNEST in subquery -- fixed issue with INFORMATION_SCHEMA.ELEMENT_TYPES view -- fixed missing exception when table functions were used as SELECT items -- fixed regression with server ACL file load -- fixed issue with query not compiling with certain types of IN predicate -- added support for UNNEST with multiple ARRAY args -- added SYSTIMESTAMP function -- dba privilege required for LOAD_FILE function -- improved handling of misconfigured external logging platforms -- improved query speed for some joins -- improved parameter type allocation for IN lists -- minor improvements 12 Jun 2011 - version 2.2.4 -- fixed reported issue -- improved INFORMATION_SCHEMA concurrency 6 Jun 2011 - version 2.2.3 -- fixed issue with limit offset with indexed IN predicate -- added INFORMATION_SCHEMA.ELEMENT_TYPES view and related enhancements -- added hsqldb.full_log_replay property -- added REGEXPR_SUBSTRING and REGEXPR_SUBSTRING_ARRAY functions -- added support for multiple unnamed savepoints -- improved IFNULL etc. functions that are based on CASE WHEN expressions -- improved Transfer Tool in HSQLDB transfers -- minor improvements 22 May 2011 - version 2.2.2 -- increased .data file limit to 2TB -- improved EXPLAIN PLAN -- improved query speed for some joins -- improved TRUNCATE statement -- added support for text tables in mem: databases -- minor improvements 16 May 2011 - version 2.2.1 -- fixed regression in 2.2.0 with server TLS -- fixed regression in 2.2.0 with ResultSetMetaData schema names -- fixed type limitations of Connection#createArrayOf -- fixed DatabaseManager running as Applet -- added contents to INFORMATION_SCHEMA.SQL_IMPLEMENTATION_INFO -- added auto checkpoints execution in separate session -- improved query speed for some LEFT OUTER joins -- added deletion of the temp directory at shutdown 10 May 2011 - version 2.2.0 -- fixed regression in 2.1.0 with database log created after a backup is completed not used for recovery -- fixed regression in 2.1.0 with alter table operation failures causing loss of table data -- fixed issues with disk based result sets -- fixed issue with multiple ALTER TABLE statements used as a single statement -- reserved keywords now include DEFAULT and exclude ADMIN -- added support for ROWNUM() function -- added support for GET DIAGNOSTICS statement and DIAGNOSTICS function -- added support for POSITION_ARRAY and enhancements to SORT_ARRAY (also ARRAY_SORT) -- added support for WIDTH_BUCKET function -- added support for SQL execution logging SET DATABASE EVENT LOG SQL LEVEL 3 -- improved column nullability reporting in ResultSetMetaData -- improved BOOLEAN type support in compatibility modes -- improvements to Server, including new shutdown methods and properties file name argument -- improvements to MVCC transaction management -- improvements to text table properties support -- improved table and database locking for DDL statements -- minor improvements and bug fixes 14 Mar 2011 - Version 2.1.0 -- added support for WITH RECURSIVE -- added support for ALTER INDEX AS () to change the indexed column list of an index -- extension of MySQL and PostgreSQL compatibility modes. Includes type conversion and sequence functions -- extension to IDENTITY column support allows the use of a named SEQUENCE 22 Feb 2011 - SVN 4096 - 2.1.0 rc4 -- improvements to avoid creation of new .data files at checkpoint and allow incremental enlargement of this file -- additions and improvements to INFORMATION_SCHEMA -- added MS SqlServer function compatibility -- added more extensive support for ALTER SPECIFIC ROUTINE -- added initial support for JDBC 4.1 - Java 1.7 -- added support for opening most 1.8.x databases that are not explicitly SHUTDOWN -- event logging format has changed slightly, and new level 3 allows more detail in the log -- added MEDIAN aggregate function -- added ARRAY_SORT function -- routine variables and parameters can be used in LIMIT / FETCH / OFFSET clauses -- improvements to lob use with PreparedStatement -- improvements to calling procedures with JDBC 10 Dec 2010 - SVN 3940 - 2.0.1 RC3 -- added support for cached tables for lob catalog -- added support for CURRENT VALUE FOR , same as CURRVAL -- added TO_TIMESTAMP, LPAD, RPAD functions 31 Oct 2010 - SVN 3836 - 2.0.1 RC2 -- added support for CREATE TABLE ... IF NOT EXISTS ... -- added support for ?user=xxxx&password=yyyy connection in URL string -- improved query optimisation for LIKE -- added support for password complexity check functions -- added support for external user authentication -- added UUID functions 19 Oct 2010 - SVN 3824 - 2.0.1 RC1 -- added support for compressed scripts 14 Oct 2010 - SVN 3814 -- added support for recursive SQL functions and local table variables 04 Oct 2010 - SVN 3808 -- added support for translation of Oracle types VARCHAR2, NUMBER, RAW, etc. with SET DATABASE SQL SYNTAX ORA TRUE -- added support for more procedural statements in SQL triggers -- added support for variables in database URL's 24 Sept 2010 - SVN 3794 -- fixed issue with new sql compatibility properties applied to older databases -- fixed bug with IN predicates in arguments of aggregate functions -- fixed bug with table functions used in subqueries -- added support for Oracle syntax elements including DUAL, ROWNUM, NEXTVAL, CURRVAL with sql.syntax_ora=true property -- added support for clustered indexes -- added enhancement for column visibility in nested joins -- added support for datetime ROUND and TRUNC functions -- added new connection properties -- added support for FOR loops in routines 11 Aug 2010 - SVN 3750 -- extended getGeneratedKeys to UPDATE and MERGE operations -- extended ALTER SESSION statement -- added SEQUENCE_ARRAY and SESSION_ID function 28 July 2010 - SVN 3725 -- improved changing type of columns -- added support for adding GENERATED ... AS IDENTITY to an existing column 23 July 2010 - SVN 3721 -- added FILTER clause support to aggregate functions -- added functions ACTION_ID, TRANSACTION_ID, TRANSACTION_SIZE, UNIX_TIMESTAMP 22 July 2010 - SVN 3716 -- improved default reporting of WITH TIME ZONE and INTERVAL types in metadata and system tables -- improved getGeneratedKeys with user defined column sets -- fixed bug #3032488 - multi-column IN condition without a full index on columns did not work 19 July 2010 - SVN 3709 -- added support for procedures returning result sets -- additional relaxation of BIT used as BOOLEAN 13 July 2010 - SVN 3693 -- added aggregate functions ARRAY_AGG and GROUP_CONCAT -- added TO_DATE function 09 July 2010 - SVN 3688 -- added function LOB_ID -- added BLOB, CLOB, VARBINARY support to Java functions and procedures -- fixed bug with OCTET_LENGTH function 07 July 2010 - SVN 3686 -- added property sql.longvar_is_lob -- added missing CONCAT function -- added ARRAY support to Java functions and procedures -- added query optimisation for DISTINCT and GROUP BY on indexed columns -- speed improvement for some large results -- fixed bug related to persistence of lobs after row updates that change the lob -- fixed bug #3023253 - multiple count(*) with duplicate tables in outer join -- fixed bug #3022106 - mix of IS NULL and other conditions in outer join 26 June 2010 - SVN 3674 -- added property sql.enforce_types and related SQL statement -- added ALTER SESSION statement -- fixed bug #3021175 with setFetchSize() -- relaxation of type comparison and null types - controlled by sql.enforce_type 22 June 2010 - SVN 3667 -- changed names of three system functions ISDATABASEREADONLY() to IS_DATABASE_READONLY(), etc. -- fixed bug with Clob.getInputStream() -- improvement to TO_CHAR function -- some relaxation of DECIMAL dynamic params 16 June 2010 - SVN 3658 -- fixed bug #3016375 Server remote open with no initial database -- fixed bugs #3016397 - multiple UNION CORRESPONDING did not work -- fixed bugs #3016481 - TABLE T did not work with views -- minor improvement to MVCC transactions 13 June 2010 - SVN 3654 -- fixed issue with third parameter of LOCATE function -- added TRUNC and changed return type of TRUNCATE function to reduce decimal scale -- added synchronized blocks to allow mass creation of mem: databases -- added support for jdbc:default:connection for Java functions 07 June 2010 - SVN 3646 -- fixed bug - SET FILES LOB SCALE did not change the store without a shutdown -- fixed bug #3012585 - multi-column FOREIGN KEY with mismatched order of PK columns did not work correctly