Change Log

Next Version (unreleased)

  • Issue #1750: JOIN t ON t.col IN (SELECT ...) throws AssertionError

Version 1.4.198 (2019-02-22)

  • Issue #1746: Infinite loop in TestConcurrent.testConcurrentChangeAndGetVersion()
  • Issue #1739: Table and view names not case sensitive when using DATABASE_TO_UPPER=FALSE
  • Issue #848: H2 PostgreSQL Compatibility Mode: lowercase metadata
  • Issue #485: Problem is in invalid case for schema's IGNORECASE=true;DATABASE_TO_UPPER=false
  • Issue #1742, PR #1743: Assorted small changes
  • PR #1738: Reduce memory allocation in getSQL() methods
  • PR #1737: more javadoc updates
  • Issue #1735: Creating views with DATABASE_TO_UPPER=FALSE fails
  • Issue #1732: source.html does not work
  • Issue #1730: Show error in H2 Console if specified driver is not compatible with URL
  • Issue #1590: Error on executing "DELETE FROM table1 WHERE ID = ?; DELETE FROM table2 WHERE ID = ?;"
  • Issue #1727: Support ISODOW as identifier for the extract function additional to ISO_DAY_OF_WEEK
  • PR #1580, #1726: Disable remote database creation by default
  • PR #1725: Add partial implementation of standard LISTAGG aggregate function
  • PR #1722: Fix window definition lookup in some queries
  • PR #1721: Fix derived column list in complex queries
  • Issue #1718: Window function and values clause don't work well together
  • Issue #1592: Index out of bounds exception in Page.getKey()
  • PR #1716: Improve documentation of some DML commands
  • Issue #1715: Postgres mode: Domain "regproc" already exists
  • PR #1714: Assorted changes
  • PR #1713: Remove DataType.defaultDisplaySize and fix display size in TypeInfo
  • PR #1711: Add QUALIFY clause to SELECT command
  • Issue #1708: CREATE TABLE AS doesn't support column lists without data types
  • PR #1707: Fix sort order and ENUM data type in external results
  • PR #1706: Add hypothetical set functions
  • PR #1705: Fix GROUP_CONCAT with variable separator
  • PR #1704: Fix return type of PERCENTILE_CONT and MEDIAN
  • PR #1701: Add PERCENTILE_CONT and PERCENTILE_DISC inverse distribution functions
  • Issues #1297, #1697: Failure on concurrent session closure
  • Issue #1297: removeOldTempIndexes on PageStore causes NullPointerException
  • Issue #1354: TestCrashAPI: another NPE
  • PR #1695: Reduce memory for TestMVTempResult to 64m
  • Issue #1691: Append mode causes OOME in MVPlainTempResult
  • PR #1692: Use MVTempResult unconditionally
  • Issue #1689: Use separate constants for data types in Data, ValueDataType, and Transfer
  • PR #1687: MVMap minor cleanup
  • PR #1686: Fix a regression with ENUM data type
  • PR #1685: Fix CHAR in PostgreSQL mode and refactor some code
  • Issue #1681: IN () doesn't work with row values when data types are not exactly the same
  • Issue #1320: OOME / GC overhead in IndexCursor.nextCursor()
  • PR #1680: Assorted fixes for ALTER TABLE ALTER COLUMN
  • PR #1679: Use TestScript for testSimple
  • Issue #1677: Unable to use VALUES keyword in WHERE clause
  • Issue #1672: Deadlock on MVStore close in TestOutOfMemory
  • Issue #1665: TestCrashAPI: NPE with ENUM in MINUS operator
  • Issue #1602: Combine type, precision, scale, display size and extTypeInfo into one object
  • PR #1671: Assorted changes
  • Issue #1668: MySQL compatibility DATE() function should return NULL on error
  • Issue #1604: TestCrashAPI: PreparedStatement.getGeneratedKeys() is already closed
  • PR #1667: Detect NULL values and overflow in window frame bounds
  • PR #1664: Allow any expressions in window frames
  • Issue #1576: H2 Console should not display precision and scale for data types that don't have them
  • PR #1662: Fix Alter Table Drop Column In View when table name is wrapped by Double Quotes
  • PR #1660: Optimize window aggregates with AND UNBOUNDED FOLLOWING and no exclusions
  • PR #1658: Assorted small changes
  • PR #1657: Failure to stop background thread
  • PR #1656: Optimize window aggregates with ORDER BY + UNBOUNDED PRECEDING + no exclusions
  • Issue #1654: OOM in TestMemoryUsage, in big mode
  • Issue #1651: TIMESTAMP values near DST may be changed in MVStore database due to UTC-based PageStore format in some temporary storages
  • PR #1650: Fix race in MVStore.close()
  • Issue #1212: TestDiskFull: The file is locked
  • PR #1648: Add functions ARRAY_CAT(), ARRAY_APPEND() and ARRAY_SLICE()
  • PR #1646: In preparation to a release
  • PR #1643: more javadoc update
  • PR #1642: update javadoc
  • PR #1641: Update copyright years
  • PR #1640: Suggest ANY(?) instead of variable IN() again
  • PR #1638: Add support for Java 11 to test suite
  • PR #1637: Remove explicit unboxing
  • PR #1635: Optimize UUID to VARCHAR conversion and use correct time check in Engine.openSession()
  • Issue #1632: TestMVTableEngine failure
  • PR #1631: Prepare to release: javadoc cleanup
  • PR #1630: fix duplicate words typos in comments and javadoc
  • PR #1627: Use lock to protect append buffer
  • Issue #1618: GROUP BY does not work with two identical columns in selected expressions
  • Issue #1619: Two-phase commit regression in MASTER
  • PR #1626: fix doc
  • PR #1625: Prepare to release: javadoc cleanup, fix maven build, fix javadoc build
  • Issue #1620: UUIDs are unexpectedly sorted as signed
  • PR #1614: Use bulk .addAll() operation
  • PR #1613: Add explicit table query
  • Issue #1608: ARRAY and row value expression should not be the same
  • Issue #1606: Quantified comparison predicate doesn't work correctly on primary key column
  • Issue #1057: Very slow execution with subquery and connection parameter LAZY_QUERY_EXECUTION=1
  • Issue #1072: Very slow execution with join and connection parameter LAZY_QUERY_EXECUTION=1
  • PR #1601: Return BIGINT from ROWNUM(), ROW_NUMBER() and rank functions
  • PR #1599: cleanup StringUtils.cache
  • PR #1598: Minor changes in parser and documentation
  • PR #1597: Remove SysProperties.CHECK preconditions around simple assertions
  • PR #1596: Improve SQL Standard compliance in LOB precision parsing
  • Issue #1594: DBSettings.optimizeIsNull and dead code in IndexCursor.getMax()
  • PR #1591: Use multi-catch java 7 language construction to simplify code
  • Issue #1582: h2 not using best index for >=
  • PR #1588: Add support for java.time.Period
  • Issue #446: FILE_READ from classpath not working because of 0 byte file length
  • PR #1579: fix unintentional append mode disruption
  • Issue #1573: DELETE FROM w/ ROWNUM and subquery
  • Issue #187: SHUTDOWN DEFRAG corrupts splitted file database
  • PR #1571: Optimizing ConditionAndOr queries
  • Issue #1565: SOME / ANY conflict
  • PR #1564: Refactor Expression implementations
  • Issue #1561: Incorrect documentation and strange fallback value of SysProperties.FILE_ENCODING
  • Issue #1566: MVStore implements Closeable/AutoCloseable
  • Issue #1550: OutOfMemoryError during "shutdown defrag"
  • Issue #1440: OOM when executing "shutdown compact" in server mode
  • Issue #1561: Incorrect documentation and strange fallback value of SysProperties.FILE_ENCODING
  • PR #1557: increase lock timeout to TestConcurrentUpdate due to Travis failures
  • Issue #1554: REGEXP_REPLACE - accept 'g' flag in PostgreSQL compatibility mode
  • Issue #950: Comparison between databases in README.md and in features.html
  • Issue #1549: [RFE] Implement locking modes (select for update)
  • PR #1548: Add AsynchronousFileChannel-based experimental FilePathAsync
  • PR #1547: Speedup unused chunks collection
  • PR #1546: Tiny optimization: use `System.arraycopy` when possible
  • PR #1545: Export datetime value functions to SQL using standard syntax
  • Issue #1371: NPE in CacheLRU
  • Issue #1534: Typo in message
  • Issue #1527: Parser performance: Excessive use of regular expressions to validate column names
  • PR #1543: MVStore assorted re-factorings
  • PR #1538: Add support for newer Lucene versions without recompilation
  • Issue #1536: CURRENT_TIMESTAMP result doesn't change under Transactions
  • Issue #239: Consider supporting Lucene 5 indexes
  • PR #1520: Fixes bug in PutIfAbsentDecisionMaker
  • Issue #1518: ENUM and VIEW with filtering on enum column
  • Issue #1516: Array element reference array[index] should be 1-based
  • Issue #1512: TestMVTableEngine.testLowRetentionTime(): NPE in VersionedValue.Type
  • PR #1513: Assorted minor changes
  • PR #1510: Add optional EXCEPT clause to wildcards
  • PR #1509: Use domain term everywhere
  • Issue #1507: Add INFORMATION_SCHEMA.COLUMNS.COLUMN_TYPE qualification for domains
  • Issue #1499: TestScript::envelope.sql failure in “big” mode
  • Issue #1498: NPE in SimpleResultSet.getColumnCount()
  • Issue #1495: MERGE statement doesn't affect any rows when Oracle UPDATE .. WHERE .. DELETE .. WHERE is used
  • Issue #1493: MERGE statement fails when it updates more than one row
  • Issue #1492: Unnecessary restriction on MERGE USING statement when ON clause doesn't reference any target table columns
  • Issue #1491: Unnecessary restriction on MERGE USING statement when ON predicate doesn't match inserted row
  • Issue #1490: NullPointerException when running invalid MERGE statement
  • Issue #1489: MERGE USING documentation has misleading railroad diagram
  • Issue #1488: Improve documentation of window and some other functions
  • Issue #1485: Default window frame in presence of ORDER BY is RANGE .., not ROWS
  • PR #1484: New tests, reimplemented EXCLUDE clause, and assorted changes
  • Issue #1338: MSSQLServer compatibility enhancements
  • PR #1480: Update Maven build instruction and fix some problems
  • PR #1478: Upgrade maven-surefire-plugin
  • PR #1476: Add TransactionStore to MVStore jar
  • Issue #1475: Dropping column used by a view produces misleading error message
  • Issue #1473: TestScript needs better detection of sorted result
  • PR #1471: issue 1350: TestCrashAPI: PageStore.freeListPagesPerList
  • PR #1470: Fix window functions in queries with HAVING
  • PR #1469: Forbid incorrect nesting of aggregates and window functions
  • Issue #1437: Generated as Identity has a different behaviour.
  • PR #1467: Fix subtraction of timestamps
  • PR #1464: Assorted minor changes in window processing code
  • PR #1463: Fix some window aggregates and reduce amount of collecting implementations
  • PR #1462: Separate aggregate and window code in some places
  • PR #1461: Add WINDOW clause support
  • Issue #1427: Scalability problem in MVSpatialIndex
  • PR #1459: Improve window clause correctness checks
  • PR #1457: Add NTILE(), LEAD() and LAG() window functions
  • PR #1456: Add experimental implementation of remaining types of window frames
  • PR #1454: Add FIRST_VALUE(), LAST_VALUE(), and NTH_VALUE()
  • PR #1453, Issue #1161: Add ROW_NUMBER(), RANK(), DENSE_RANK(), PERCENT_RANK(), and CUME_DIST() window functions
  • PR #1452: Reset aggregates before reuse
  • PR #1451: Add experimental support for aggregates with OVER (ORDER BY *)
  • PR #1450: Evaluate window aggregates only once for each partition
  • PR #1449: Move more code from Aggregate and JavaAggregate to AbstractAggregate
  • PR #1448: Add experimental implementation of grouped window queries
  • PR #1447: Refactor OVER() processing code and fix some issues
  • PR #1446: fix : The French messages are bad generated (not contain DB message)
  • PR #1445: Use PostGIS-compatible format for SRID-only constraint in GEOMETRY
  • PR #1444: Add experimental unoptimized support for OVER ([PARTITION BY ...]) in aggregates
  • PR #1442: Bugfix - Release MVStore lock and file resources rightly even if errors when compacting database
  • PR #1441: Add GEOMETRY type subtypes with type and SRID constraints
  • PR #1434: Add support for ENUM in CAST and other changes
  • PR #1431: Fix some inconsistencies in documentation and improve mvn build
  • PR #1428: Add support for M and ZM dimensions to GEOMETRY data type
  • Issue #1405: Introduce LocalResult factory
  • PR #1422: Add ENVELOPE aggregate function
  • Issue #1421: Remove old-style outer join
  • PR #1419: Assorted minor changes
  • PR #1414: DEFRAG and COMPACT mixup
  • PR #1413: improvements to MVStore garbage collection
  • PR #1412: Added org.h2.store.fs package to exported osgi bundles
  • PR #1409: Map all remaining error codes to custom exception classes
  • Issue #1407: Add a MODE() aggregate function
  • PR #1402: Duplicate conditions in column check constraint
  • PR #1399: Add more subclasses of SQLException and use it for some error codes
  • PR #1397: Add DATEADD return type detection
  • Issue #1393: Add INFORMATION_SCHEMA.COLUMNS.IS_VISIBLE
  • PR #1392: Some refactoring and assorted minor optimizations
  • PR #1388: Extract UnaryOperation from Operation and other changes
  • PR #1386: DISK_SPACE_USED() for MVStore and other minor changes
  • PR #1385: split up the rather large convertTo method
  • PR #1384: Throw exception if unknown mode is specified in database URL
  • Issue #1365, PR #1382: Parse more date-time literals for compatibility with other databases
  • PR #1381: Minor fixes for INTERVAL data type
  • PR #1380: Improve documentation of intervals
  • Issue #1189: "Merge into using" parameters aren't found
  • Issue #1377: org.h2.api.Interval and TIME leftovers
  • PR #1376: TestMultiThreadedKernel is back
  • PR #1373: INTERVAL data type
  • Issue #1369: In MSSQL Server Mode generated UUID fields need NEWID() function
  • Issue #756: FunctionsMySql is not in the main jar
  • PR #1368: Parse BINARY VARYING, BINARY LARGE OBJECT, and CHARACTER LARGE OBJECT
  • PR #1367: Assorted changes with SELECT output limitation clauses
  • Issue #1363: Why H2 requires random own packages in OSGi bundle description?
  • Issue #1192: Add an Automatic-Module-Name
  • Issue #1361, PR #1362: Add limited support for MONEY and SMALLMONEY in compatibility modes
  • Issue #1327: mvn build misses some resources
  • PR #1359: Add system property to return OffsetDateTime from ResultSet.getObject()
  • PR #1357: Simplify execution flow in some places
  • PR #1356: Fix NPE in Query.initExpression()
  • PR #1355: Assorted changes in MetaTable
  • Issue #1352: TestCrashAPI: Prepared.getObjectId() was called before
  • PR #1349: Changes is conversion and comparison methods of Value
  • Issue #1346: Exception when using IN condition for enums
  • PR #1345: Replace some init methods with constructors
  • PR #1344: Streamline last chunk verification on startup
  • PR #1341: Optimize MVSecondaryIndex.convertToKey()
  • PR #1340: NoSuchElementException instead of returning null
  • PR #1339: Add support of TIMESTAMP WITH TIME ZONE to addition and subtraction operators
  • PR #1337: Streamline Value comparison
  • PR #1336: Minor refactorings
  • Issue #1332: Constraint name not set correctly
  • Rename fields to reflect actual type
  • Issue #1331: Regression in Database.updateMeta()
  • Issue #1323: Slow update after altering table in 1.4.197
  • PR #1326: Add support of PERCENT in FETCH and TOP clauses
  • PR #1325: Optimize WITH TIES in some queries and specify data types for KEY_COLUMN_USAGE
  • PR #1321: Do not add rows before OFFSET to result if possible
  • PR #1319: Treat NEXTVAL as an auto-generated key
  • PR #1318: Mode append fo MVPlainTempResult
  • PR #1314: Add ALTER VIEW RENAME command
  • PR #1313, issue #1315: Bugfix - using default locale encoding issue in conversion between varchar and varbinary value, and checking javac output text issue in SourceCompiler
  • PR #1312: Add Java 9+ support to NIO_CLEANER_HACK
  • PR #1311: Fix minor issues with ResultSet.getObject(..., Class) and WITH TIES
  • Issue #1298: TestKillRestartMulti: A map named undoLog.2 already exists
  • Issue #1307: Invalid value "null" for parameter "calendar" [90008-193]
  • PR #1306: Add initial implementation of WITH TIES clause
  • PR #1304: Update changelog and fix building of documentation
  • PR #1302: Use OpenJDK instead of OracleJDK 10 in Travis builds due to Travis problem
  • Issue #1032: Error when executing "SELECT DISTINCT ON"
  • Issue #1295: ConditionInSelect violates requirements of LocalResult
  • PR #1296: Assorted minor changes
  • PR #1293: Move HELP and SHOW tests into own files
  • PR #1291: Fix update count for REPLACE and move some SQL tests into separate files
  • PR #1290: Do not load the whole LOBs into memory for comparison operation
  • Issue #408: DISTINCT does not properly work with ORDER BY on function like LOWER
  • PR #1286: Fix MVTempResult implementations for results with invisible columns
  • Issue #1284: Nanoseconds of timestamps from old H2 versions are not read properly
  • PR #1283: Clean up interaction between LocalResult and ResultExternal
  • Issue #1265: OOME is not handled properly in TraceObject.logAndConvert()
  • Issue #1061: Regression: Braces after WITH clause not allowed anymore
  • PR #1277: Assorted changes in Parser
  • PR #1276: Improve support of ARRAY and SQLXML in JDBC layer
  • PR #1275: Do not quote other lower case characters
  • PR #1274: Use token type in Parser instead of string comparisons
  • PR #1272: Reduce code duplication in Parser
  • PR #1271: Minor memory leak
  • PR #1270: drop TableView isPersistent field
  • PR #1269: Eliminate commit of empty batch in some tests
  • Issue #1266: Add INFORMATION_SCHEMA.COLUMNS.DATETIME_PRECISION
  • Issue #1261: How to discover stored enum types through INFORMATION_SCHEMA
  • Issue #1258: Failing to remove index when using schema.table
  • PR #1256: misc tiny refactorings
  • PR #1255: Minor changes in MERGE USING, DATE_TRUNC, and EXTRACT
  • Issue #1214: Internal compiler believes that "3 warnings" is an error
  • PR #1252: Assorted minor changes
  • PR #1251: Fix SQL representation of CAST for types with fractional seconds precision
  • PR #1250: Batch append mode for MVMap
  • PR #1248: StringIndexOutOfBoundsException due to undoLog map
  • PR #1246: Detect disabled tests
  • PR #1242: Add implementation of SQLXML interface
  • PR #1241: Various tweaks in attempting to fix TestDiskFull test
  • PR #1240: Optimise ValueLobDB comparison methods
  • PR #1239: Don't try to find tools.jar on Java 9+
  • PR #1238: remove unfinished android API
  • PR #1237: remove JaQu
  • PR #1236: remove STORE_LOCAL_TIME code
  • PR #1235: Do not use deprecated Class.newInstance()
  • PR #1234: Fix NPE in Parser.parseMergeUsing()
  • PR #1233: Simplify old lob ValueLob class
  • Issue 1227: lob growth in pagestore mode
  • PR #1230: clean up some javadoc and some throws clauses
  • PR #1229: Create UndoLog only when necessary and remove outdated code
  • PR #1228: Remove some PageStore+MVCC leftovers
  • PR #1226: Fix inconsistencies in checks for transaction isolation level
  • PR #1224: Enable Java 10 testing on Travis
  • PR #1223: Fix issues with testing on latest Java versions
  • PR #1222: Leftovers handling
  • Issue #1220: JDK-9 build fails due to usage of java.xml.bind in external authentication
  • PR #1218: Test utilities only once during TestAll
  • PR #1217: Postpone session.endStatement() until after commit
  • PR #1213: KillRestart fix
  • PR #1211: Assorted minor changes
  • Issue #1204: Always use MVCC with MVStore and never use it with PageStore
  • PR #1206: Forbid reconnects in non-regular modes in TestScript
  • PR #1205: Misc test fixes
  • Issue 1198: Enable MULTI_THREADED by default for MVStore mode
  • Issue #1195: Calling setBytes to set VARCHAR field fails
  • PR #1197: Fix or suppress errors in tests
  • PR #1194: TestKillRestartMulti: A map named undoLog-1 already exists
  • PR #1193: enable TestRandomSQL on non-memory databases
  • PR #1191: External authentication with datasource issue
  • PR #1188: Undo log split to reduce contention
  • PR #1186: TransactionMap::sizeAsLong() optimized - temp map eliminated
  • PR #1185: Improve naming of the object id field in Prepared
  • Issue #1196: Feature request for MS SQL Server Compatibility Mode
  • Issue #1177: Resource leak in Recover tool
  • PR #1183: Improve concurrency of connection pool with wait-free implement
  • Issue #1073: H2 v1.4.197 fails to open an existing database with the error [Unique index or primary key violation: "PRIMARY KEY ON """".PAGE_INDEX"]
  • PR #1179: Drop TransactionMap.readLogId
  • PR #1181: Improve CURRENT_TIMESTAMP and add LOCALTIME and LOCALTIMESTAMP
  • PR #1176: Magic value replacement with constant
  • PR #1171: Introduce last committed value into a VersionedValue
  • PR #1175: tighten test conditions - do not ignore any exceptions
  • PR #1174: Remove mapid
  • PR #1173: protect first background exception encountered and relate it to clients
  • PR #1172: Yet another attempt to tighten that testing loop
  • PR #1170: Add support of CONTINUE | RESTART IDENTITY to TRUNCATE TABLE
  • Issue #1168: ARRAY_CONTAINS() returning incorrect results when inside subquery with Long elements.
  • PR #1167: MVStore: Undo log synchronization removal
  • PR #1166: Add SRID support to EWKT format
  • PR #1165: Optimize isTargetRowFound() and buildColumnListFromOnCondition() in MergeUsing
  • PR #1164: More fixes for parsing of MERGE USING and other changes in Parser
  • PR #1154: Support for external authentication
  • PR #1162: Reduce allocation of temporary strings
  • PR #1158: make fields final
  • Issue #1129: TestCrashAPI / TestFuzzOptimizations throw OOME on Travis in PageStore mode
  • PR #1156: Add support for SQL:2003 WITH [NO] DATA to CREATE TABLE AS
  • PR #1149: fix deadlock between OnExitDatabaseCloser.DATABASES and Engine.DATABASES
  • PR #1152: skip intermediate DbException object when creating SQLException
  • PR #1144: Add missing schema name with recursive view
  • Issue #1091: get rid of the "New" class
  • PR #1147: Assorted minor optimizations
  • PR #1145: Reduce code duplication
  • PR #1142: Misc small fixes
  • PR #1141: Assorted optimizations and fixes
  • PR #1138, #1139: Fix a memory leak caused by DatabaseCloser objects
  • PR #1137: Step toward making transaction commit atomic
  • PR #1136: Assorted minor optimizations
  • PR #1134: Detect possible overflow in integer division and optimize some code
  • PR #1133: Implement Comparable<Value> in CompareMode and optimize ValueHashMap.keys()
  • PR #1132: Reduce allocation of ExpressionVisitor instances
  • PR #1130: Improve TestScript and TestCrashAPI
  • PR #1128: Fix ON DUPLICATE KEY UPDATE with ENUM
  • PR #1127: Update JdbcDatabaseMetaData.getSQLKeywords() and perform some minor optimizations
  • PR #1126: Fix an issue with code coverage and building of documentation
  • PR #1123: Fix TCP version check
  • PR #1122: Assorted changes
  • PR #1121: Add some protection to ValueHashMap against hashes with the same less significant bits
  • Issue #1097: H2 10x slower than HSQLDB and 6x than Apache Derby for specific query with GROUP BY and DISTINCT subquery
  • Issue #1093: Use temporary files for ResultSet buffer tables in MVStore
  • PR #1117: Fix sorting with distinct in ResultTempTable
  • Issue #1095: Add support for INSERT IGNORE INTO <table> (<columns>) SELECT in MySQL Mode
  • PR #1114: Minor cleanup and formatting fixes
  • PR #1112: Improve test scripts
  • PR #1111: Use a better fix for issue with SRID
  • Issue #1107: Restore support of DATETIME2 with specified fractional seconds precision
  • Issue #1106: Get rid of SwitchSource
  • PR #1105: Assorted minor changes
  • Issue #1102: CREATE SYNONYM rejects valid definition
  • PR #1103: Remove redundant synchronization
  • Issue #1048: 1.4.197 regression. org.h2.jdbc.JdbcSQLException: Timeout trying to lock table "SYS"
  • PR #1101: Move some tests in better place and add an additional test for 2PC
  • PR #1100: Fix Insert.prepareUpdateCondition() for PageStore
  • PR #1098: Fix some issues with NULLS FIRST / LAST
  • Issue #1089: Parser does not quote words INTERSECTS, DUAL, TOP
  • Issue #230: Renaming a column does not update foreign key constraint
  • Issue #1091 Get rid if the New class
  • PR #1087: improve performance of planning large queries
  • PR #1085: Add tests for simple one-column index sorting
  • PR #1084: re-enable some pagestore testing
  • PR #1083: Assorted changes
  • Issue #394: Recover tool places COLLATION and BINARY_COLLATION after temporary tables
  • PR #1081: Session.getTransactionId should return a more distinguishing value
  • Improve the script-based unit testing to check the error code of the exception thrown.
  • Issue #1041: Support OR syntax while creating trigger
  • Issue #1023: MVCC and existing page store file
  • Issue #1003: Decrypting database with incorrect password renders the database corrupt
  • Issue #873: No error when `=` in equal condition when column is not of array type
  • Issue #1069: Failed to add DATETIME(3) column since 1.4.197
  • Issue #456: H2 table privileges referring to old schema after schema rename
  • Issue #1062: Concurrent update in table "SYS" caused by Analyze.analyzeTable()
  • Yet another fix to Page memory accounting
  • Replace MVStore.ASSERT variable with assertions
  • Issue #1063: Leftover comments about enhanced for loops
  • PR #1059: Assorted minor changes
  • PR #1058: Txcommit atomic
  • Issue #1038: ora_hash function implementation off by one
  • PR #1054: Introduce overflow bit in tx state
  • Issue #1047: Support DISTINCT in custom aggregate functions
  • PR #1051: Atomic change of transaction state
  • PR #1046: Split off Transaction TransactionMap VersionedValue
  • PR #1045: TransactionStore move into separate org.h2.mvstore.tx package
  • PR #1044: Encapsulate TransactionStore.store field in preparation to a move
  • PR #1040: generate less garbage for String substring+trim
  • PR #1035: Minor free space accounting changes
  • Issue #1034: MERGE USING should not require the same column count in tables
  • PR #1033: Fix issues with BUILTIN_ALIAS_OVERRIDE=1
  • PR #1031: Drop schema rights together with schema
  • PR #1029: No need to remove orphaned LOBs when the db is read-only
  • Issue #1027: Add support for fully qualified names in MySQL compatibility mode
  • Issue #178: INSERT ON DUPLICATE KEY UPDATE returns wrong generated key
  • PR #1025: Remove BitField and replace its usages with BitSet
  • Issue #1019: Console incorrectly sorts BigDecimal columns alphanumerically
  • PR #1021: Update JdbcDatabaseMetaData to JDBC 4.1 (Java 7)
  • Issue #992: 1.4.197 client cannot use DatabaseMetaData with 1.4.196 and older server
  • Issue #1016: ResultSet.getObject() should return enum value, not ordinal
  • Issue #1012: NPE when querying INFORMATION_SCHEMA.COLUMNS on a view that references an ENUM column
  • Issue #1010: MERGE USING table not found with qualified table
  • PR #1009: Fix ARRAY_AGG with ORDER BY and refactor aggregates
  • Issue #1006: "Empty enums are not allowed" in 1.4.197 (mode=MYSQL)
  • PR #1007: Copy also SRID in ValueGeometry.getGeometry()
  • PR #1004: Preserve type names in more places especially for UUID
  • Issue #1000: Regression in INFORMATION_SCHEMA.CONSTRAINTS.CONSTRAINT_TYPE content
  • Issue #997: Can not delete from tables with enums
  • Issue #994: Too much column in result set for GENERATED_KEYS on table with DEFAULT
  • PR #993: Fix some compiler warnings and improve assert*() methods
  • PR #991: Generate shorter queries in JdbcDatabaseMetaData.getTables() and remove some dead code
  • PR #989: Fix more issues with range table and improve its documentation

Version 1.4.197 (2018-03-18)

  • PR #988: Fix RangeTable.getRowCount() for non-default step
  • PR #987: ValueBoolean constants are not cleared and may be used directly
  • PR #986: Check parameters in JdbcPreparedStatement.addBatch()
  • PR #984: Minor refactorings in Parser
  • PR #983: Code cleanups via IntelliJ IDEA inspections
  • Issue #960: Implement remaining time unit in "date_trunc" function
  • Issue #933: MVStore background writer endless loop
  • PR #981: Reorganize date-time functions
  • PR #980: Add Parser.toString() method for improved debugging experience
  • PR #979: Remove support of TCP protocol versions 6 and 7
  • PR #977: Add database versions to javadoc of TCP protocol versions and update dictionary.txt
  • PR #976: Add and use incrementDateValue() and decrementDateValue()
  • Issue #974: Inline PRIMARY KEY definition loses its name
  • PR #972: Add META-INF/versions to all non-Android jars that use Bits
  • PR #971: Update ASM from 6.1-beta to 6.1
  • PR #970: Added support for ENUM in prepared statement where clause
  • PR #968: Assorted changes
  • PR #967: Adds ARRAY_AGG function
  • PR #966: Do not include help and images in client jar
  • PR #965: Do not include mvstore.DataUtils in client jar and other changes
  • PR #964: Fix TestFunctions.testToCharFromDateTime()
  • PR #963 / Issue #962: Improve documentation of compatibility modes and fix ssl URL description
  • Issue #219: H2 mode MySQL- ON UPDATE CURRENT_TIMESTAMP not supported
  • PR #958: More fixes for PgServer
  • PR #957: Update database size information and links in README.md
  • PR #956: Move tests added in 821117f1db120a265647a063dca13ab5bee98efc to a proper place
  • PR #955: Support getObject(?, Class) in generated keys
  • PR #954: Avoid incorrect reads in iterators of TransactionMap
  • PR #952: Optimize arguments for MVMap.init()
  • PR #949: Fix table borders in PDF and other changes
  • PR #948: Fix some grammar descriptions and ALTER TABLE DROP COLUMN parsing
  • PR #947: Fix building of documentation and use modern names of Java versions
  • PR #943: Assorted changes in documentation and a fix for current-time.sql
  • PR #942: Fix page numbers in TOC in PDF and move System Tables into own HTML / section in PDF
  • PR #941: Use >> syntax in median.sql and move out more tests from testScript.sql
  • PR #940: add Support for MySQL: DROP INDEX index_name ON tbl_name
  • PR #939: Short syntax for SQL tests
  • Issue #935: The "date_trunc" function is not recognized for 'day'
  • PR #936: Fix font size, line length, TOC, and many broken links in PDF
  • PR #931: Assorted changes in documentation
  • PR #930: Use Math.log10() and remove Mode.getOracle()
  • PR #929: Remove Mode.supportOffsetFetch
  • PR #928: Show information about office configuration instead of fallback PDF generation mode
  • PR #926: Describe datetime fields in documentation
  • PR #925: Fix time overflow in DATEADD
  • Issue #416: Add support for DROP SCHEMA x { RESTRICT | CASCADE }
  • PR #922: Parse and treat fractional seconds precision as described in SQL standard
  • Issue #919: Add support for mixing adding constraints and columns in multi-add ALTER TABLE statement
  • PR #916: Implement TABLE_CONSTRAINTS and REFERENTIAL_CONSTRAINTS from the SQL standard
  • PR #915: Implement INFORMATION_SCHEMA.KEY_COLUMN_USAGE from SQL standard
  • PR #914: don't allow null values in ConcurrentArrayList
  • PR #913: Assorted changes in tests and documentation
  • Issue #755: Missing FLOAT(precision)?
  • PR #911: Add support for MySQL-style ALTER TABLE ADD ... FIRST
  • Issue #409: Support derived column list syntax on table alias
  • PR #908: remove dead code
  • PR #907: Nest joins only if required and fix some issues with complex joins
  • PR #906: Fix obscure error on non-standard SELECT * FROM A LEFT JOIN B NATURAL JOIN C
  • PR #805: Move some JOIN tests from testScript.sql to own file
  • PR #804: Remove unused parameters from readJoin() and readTableFilter()
  • Issue #322: CSVREAD WHERE clause containing ORs duplicates number of rows
  • PR #902: Remove DbSettings.nestedJoins
  • PR #900: Convert duplicate anonymous classes in TableFilter to nested for reuse
  • PR #899: Fix ON DUPLICATE KEY UPDATE for inserts with multiple rows
  • PR #898: Parse TIME WITHOUT TIME ZONE and fix TIMESTAMP as column name
  • PR #897: Update JTS to version 1.15.0 from LocationTech
  • PR #896: Assorted changes in help.csv
  • PR #895: Parse more variants of timestamps with time zones
  • PR #893: TIMESTAMP WITHOUT TIME ZONE, TIMEZONE_HOUR, and TIMEZONE_MINUTE
  • PR #892: Assorted minor changes in Parser
  • PR #891: Update documentation of date-time types and clean up related code a bit
  • PR #890: Implement conversions for TIMESTAMP WITH TIME ZONE
  • PR #888: Fix two-phase commit in MVStore
  • Issue #884: Wrong test Resources path in pom.xml
  • PR #886: Fix building of documentation
  • PR #883: Add support for TIMESTAMP WITH TIME ZONE to FORMATDATETIME
  • PR #881: Reimplement dateValueFromDate() and nanosFromDate() without a Calendar
  • PR #880: Assorted date-time related changes
  • PR #879: Reimplement TO_DATE without a Calendar and fix a lot of bugs an incompatibilities
  • PR #878: Fix IYYY in TO_CHAR and reimplement TRUNCATE without a Calendar
  • PR #877: Reimplement TO_CHAR without a Calendar and fix 12 AM / 12 PM in it
  • PR #876: Test out of memory
  • PR #875: Improve date-time related parts of documentation
  • PR #872: Assorted date-time related changes
  • PR #871: Fix OOME in Transfer.readValue() with large CLOB V2
  • PR #867: TestOutOfMemory stability
  • Issue #834: Add support for the SQL standard FILTER clause on aggregate functions
  • PR #864: Minor changes in DateUtils and Function
  • PR #863: Polish: use isEmpty() to check whether the collection is empty or not.
  • PR #862: Convert constraint type into enum
  • PR #861: Avoid resource leak
  • PR #860: IndexCursor inList
  • PR #858 / Issue #690 and others: Return all generated rows and columns from getGeneratedKeys()
  • Make the JDBC client independent of the database engine
  • PR #857: Do not write each SQL error multiple times in TestScript
  • PR #856: Fix TestDateTimeUtils.testDayOfWeek() and example with ANY(?
  • PR #855: Reimplement DATEADD without a Calendar and fix some incompatibilities
  • PR #854: Improve test stability
  • PR #851: Reimplement DATEDIFF without a Calendar
  • Issue #502: SQL "= ANY (?)" supported?
  • PR #849: Encode date and time in fast and proper way in PgServerThread
  • PR #847: Reimplement remaining parts of EXTRACT, ISO_YEAR, etc without a Calendar
  • PR #846: Read known fields directly in DateTimeUtils.getDatePart()
  • Issue #832: Extract EPOCH from a timestamp
  • PR #844: Add simple implementations of isWrapperFor() and unwrap() to JdbcDataSource
  • PR #843: Add MEDIAN to help.csv and fix building of documentation
  • PR #841: Support indexes with nulls last for MEDIAN aggregate
  • PR #840: Add MEDIAN aggregate
  • PR #839: TestTools should not leave testing thread in interrupted state
  • PR #838: (tests) Excessive calls to Runtime.getRuntime().gc() cause OOM for no reason
  • Don't use substring when doing StringBuffer#append
  • PR #837: Use StringUtils.replaceAll() in Function.replace()
  • PR #836: Allow to read invalid February 29 dates with LocalDate as March 1
  • PR #835: Inline getTimeTry() into DateTimeUtils.getMillis()
  • PR #827: Use dateValueFromDate() and nanosFromDate() in parseTimestamp()
  • Issue #115: to_char fails with pattern FM0D099
  • PR #825: Merge code for parsing and formatting timestamp values
  • Enums for ConstraintActionType, UnionType, and OpType
  • PR 824: Add partial support for INSERT IGNORE in MySQL mode
  • PR #823: Use ValueByte.getInt() and ValueShort.getInt() in convertTo()
  • PR #820: Fix some compiler warnings
  • PR #818: Fixes for remaining issues with boolean parameters
  • Use enum for file lock method
  • PR #817: Parse also 1 as true and 0 as false in Utils.parseBoolean()
  • PR #815: Fix count of completed statements
  • PR #814: Method.isVarArgs() is available on all supported platforms
  • Issue #812: TIME values should be in range 0:00:00.000000000 23:59:59.999999999?
  • PR #811: Issues with Boolean.parseBoolean()
  • PR #809: Use type constants from LocalDateTimeUtils directly
  • PR #808: Use HmacSHA256 provided by JRE
  • PR #807: Use SHA-256 provided by JRE / Android and use rotateLeft / Right in Fog
  • PR #806: Implement setBytes() and setString() with offset and len
  • PR #805: Improve support of TIMESTAMP WITH TIME ZONE
  • PR #803: Use new ArrayList(Collection) and assertThrows()
  • PR #802: Use Arrays.copyOf() and Arrays.copyOfRange()
  • PR #801: Fix NULL support in PgServer for primitive types too
  • PR #800: More fixes in date-time types for ODBC drivers
  • PR #798: Add partial support of DATE, TIME, and TIMESTAMP data types to PgServer
  • PR #799: Use result of ArrayList.remove()
  • PR #797: Add ceilingKey() and floorKey() to TransactionMap (version 2)
  • PR #796: Add MDY to DateStyle in PgServerThread
  • PR #794: Sort files in generated jars
  • PR #793: Change return type of Value.getBoolean() to boolean (unwrapped)
  • PR #792: Inherit classpath from parent process
  • PR #791: Switch to JaCoCo code coverage
  • PR #788: Update lists of keywords
  • PR #789: Map DATE in Oracle mode to ValueTimestamp
  • PR #787: Assorted changes
  • PR #785: Optimize NULL handling in MVSecondaryIndex.add()
  • PR #783: Add Bits implementation for Java 9 and later versions
  • PR #784: Hardcoded port numbers should not be used in unit tests
  • PR #780: Close JavaFileManager after use.
  • PR #782: Leftover shared lock after release
  • PR #781: Locks left behind after commit
  • PR #778: Reduce code duplication
  • PR #775: Fix building of documentation and zip
  • PR #774: Assorted changes
  • PR #773: Better checks for arguments of partial LOB reading methods
  • PR #772: getBinaryStream() and getCharacterStream() with pos and length
  • Issue #754: Make NUMERIC type read as NUMERIC
  • PR #768: Add DataUtils.parseChecksummedMap()
  • PR #769: Do not copy result of DataUtils.parseMap() to a new maps
  • PR #766: Minor clean up of DateTimeUtils
  • PR #764: Make use of try-with-resources statement
  • Issue #406: Return from ResultSet.getObject not in line with JDBC specification
  • Issue #710: Misleading exception message when INSERT has no value for self referential 'AS' column
  • PR #763: Add DataUtils.getMapName()
  • PR #762: Add row deletion confirmation to web console
  • PR #760: Assorted minor optimizations
  • PR #759: Improve the look of error messages in web console
  • PR #758: Allocate less amount of garbage
  • PR #757: Fix handling of UUID in Datatype.readValue()
  • PR #753: Optimize StringUtils.trim() and remove StringUtils.equals()
  • PR #752: Use predefined charsets instead of names where possible
  • PR #750: Use AtomicIntegerArray and StandardCharsets
  • PR #749: Fix some build checks in sources
  • Issue #740: TestWeb hangups if webSSL=true specified in configuration
  • Issue #736: Copyright years in sources
  • Issue #744: TestFile failure on Java 9 and Java 10
  • PR #741: More cleanups in LocalDateTimeUtils and other minor changes
  • PR #743: Change REGEXP_REPLACE mode for MariaDB and PostgreSQL
  • Issue#646 NPE in CREATE VIEW WITH RECURSIVE & NON_RECURSIVE CTE
  • PR #738: Copy javadoc to *BackwardsCompat to fix building of documentation
  • PR #735: Add support of java.time.Instant V2
  • PR #733: Remove JPA/ORM configuration txt files as they're already integrated
  • PR #732: Fix ==
  • PR #730: Implement enquoteIdentifier() and isSimpleIdentifier() from JDBC 4.3
  • PR #729: Grammar documentation change
  • PR #727: Integer/Long.compare(x, y) can be used to compare primitive values
  • PR #726: Fixes in tests
  • Issue #725: FilePathMem.tryLock() fails since Java 9
  • PR #723: Clean up LocalDateTimeUtils
  • PR #724: Use StringBuilder instead of StringBuffer
  • PR #720: DROP TABLE RESTRICT shouldn't drop foreign keys in other tables
  • PR #722: Assorted minor changes
  • Issue #638: Oracle mode: incompatible regexp back-reference syntax
  • Make ALL a reserved keyword
  • Issue #311: Avoid calling list.toArray(new X[list.size()]) for performance
  • PR #715: Better getObject error message
  • PR #714: SecureRandom is already synchronized
  • PR #712: Return properly encoded UUID from SimpleResultSet.getBytes()
  • PR #711: TestFunctions less english dependent
  • Issue #644: Year changing from negative -509 to a positive 510.
  • PR #706: SIGNAL function
  • PR #704: added Javascript support for Triggers' source
  • Issue #694: Oracle syntax for adding NOT NULL constraint not supported.
  • Issue #699: When using an index for sorting, the index is ignored when also using NULLS LAST/FIRST
  • Issue #697: FilePathDisk.newInputStream fails for contextual class loading
  • Issue #695: jdbc:postgresql protocol connection issue in H2 Console Application in case of redshift driver in classpath
  • Fix 'file not closed' when using FILE_READ
  • Fix bug in LinkSchema tool when object exists with same name in different schemas
  • Issue #675: Fix date operations on Locales with non-Gregorian calendars
  • Fix removal of LOB when rolling back transaction on a table containing more than one LOB column.
  • Issue #654: List ENUM type values in INFORMATION_SCHEMA.COLUMNS
  • Issue #650: Simple nested SELECT causes error for table with TIMESTAMP WITH TIMEZONE column
  • Issue #654: List ENUM type values in INFORMATION_SCHEMA.COLUMNS
  • Issue #668: Fail of an update command on large table with ENUM column
  • Issue #662: column called CONSTRAINT is not properly escaped when storing to metadata
  • Issue #660: Outdated java version mentioned on http://h2database.com/html/build.html#providing_patches
  • Issue #643: H2 doesn't use index when I use IN and EQUAL in one query
  • Reset transaction start timestamp on ROLLBACK
  • Issue #632: CREATE OR REPLACE VIEW creates incorrect columns names
  • Issue #630: Integer overflow in CacheLRU can cause unrestricted cache growth
  • Issue #497: Fix TO_DATE in cases of 'inline' text. E.g. the "T" and "Z" in to_date('2017-04-21T00:00:00Z', 'YYYY-MM-DD"T"HH24:MI:SS"Z"')
  • Fix bug in MySQL/ORACLE-syntax silently corrupting the modified column in cases of setting the 'NULL'- or 'NOT NULL'-constraint. E.g. alter table T modify C NULL;
  • Issue #570: MySQL compatibility for ALTER TABLE .. DROP INDEX
  • Issue #537: Include the COLUMN name in message "Numeric value out of range"
  • Issue #600: ROW_NUMBER() behaviour change in H2 1.4.195
  • Fix a bunch of race conditions found by vmlens.com, thank you to vmlens for giving us a license.
  • PR #597: Support more types in getObject
  • Issue #591: Generated SQL from WITH-CTEs does not include a table identifier
  • PR #593: Make it possible to create a cluster without using temporary files.
  • PR #592: "Connection is broken: "unexpected status 16777216" [90067-192]" message when using older h2 releases as client
  • Issue #585: MySQL mode DELETE statements compatibility
  • PR #586: remove extra tx preparation
  • PR #568: Implement MetaData.getColumns() for synonyms.
  • Issue #581: org.h2.tools.RunScript assumes -script parameter is part of protocol
  • Fix a deadlock in the TransactionStore
  • PR #579: Disallow BLOB type in PostgreSQL mode
  • Issue #576: Common Table Expression (CTE): WITH supports INSERT, UPDATE, MERGE, DELETE, CREATE TABLE ...
  • Issue #493: Query with distinct/limit/offset subquery returns unexpected rows
  • Issue #575: Support for full text search in multithreaded mode
  • Issue #569: ClassCastException when filtering on ENUM value in WHERE clause
  • Issue #539: Allow override of builtin functions/aliases
  • Issue #535: Allow explicit paths on Windows without drive letter
  • Issue #549: Removed UNION ALL requirements for CTE
  • Issue #548: Table synonym support
  • Issue #531: Rollback and delayed meta save.
  • Issue #515: "Unique index or primary key violation" in TestMvccMultiThreaded
  • Issue #458: TIMESTAMPDIFF() test failing. Handling of timestamp literals.
  • PR #546: Fixes the missing file tree.js in the web console
  • Issue #543: Prepare statement with regexp will not refresh parameter after metadata change
  • PR #536: Support TIMESTAMP_WITH_TIMEZONE 2014 JDBC type
  • Fix bug in parsing ANALYZE TABLE xxx SAMPLE_SIZE yyy
  • Add padding for CHAR(N) values in PostgreSQL mode
  • Issue #89: Add DB2 timestamp format compatibility

Version 1.4.196 (2017-06-10)

  • Issue#479 Allow non-recursive CTEs (WITH statements), patch from stumc
  • Fix startup issue when using "CHECK" as a column name.
  • Issue #423: ANALYZE performed multiple times on one table during execution of the same statement.
  • Issue #426: Support ANALYZE TABLE statement
  • Issue #438: Fix slow logging via SLF4J (TRACE_LEVEL_FILE=4).
  • Issue #472: Support CREATE SEQUENCE ... ORDER as a NOOP for Oracle compatibility
  • Issue #479: Allow non-recursive Common Table Expressions (CTE)
  • On Mac OS X, with IPv6 and no network connection, the Console tool was not working as expected.

Version 1.4.195 (2017-04-23)

  • Lazy query execution support.
  • Added API for handling custom data types (System property "h2.customDataTypesHandler", API org.h2.api.CustomDataTypesHandler).
  • Added support for invisible columns.
  • Added an ENUM data type, with syntax similar to that of MySQL.
  • MVStore: for object data types, the cache size memory estimation was sometimes far off in a read-only scenario. This could result in inefficient cache usage.

Version 1.4.194 (2017-03-10)

  • Issue #453: MVStore setCacheSize() should also limit the cacheChunkRef.
  • Issue #448: Newly added TO_DATE and TO_TIMESTAMP functions have wrong datatype.
  • The "nioMemLZF" filesystem now supports an extra option "nioMemLZF:12:" to tweak the size of the compress later cache.
  • Various multi-threading fixes and optimisations to the "nioMemLZF" filesystem.
  • [API CHANGE] #439: the JDBC type of TIMESTAMP WITH TIME ZONE changed from Types.OTHER (1111) to Types.TIMESTAMP_WITH_TIMEZONE (2014)
  • #430: Subquery not cached if number of rows exceeds MAX_MEMORY_ROWS.
  • #411: "TIMEZONE" should be "TIME ZONE" in type "TIMESTAMP WITH TIMEZONE".
  • PR #418, Implement Connection#createArrayOf and PreparedStatement#setArray.
  • PR #427, Add MySQL compatibility functions UNIX_TIMESTAMP, FROM_UNIXTIME and DATE.
  • #429: Tables not found : Fix some Turkish locale bugs around uppercasing.
  • Fixed bug in metadata locking, obscure combination of DDL and SELECT SEQUENCE.NEXTVAL required.
  • Added index hints: SELECT * FROM TEST USE INDEX (idx1, idx2).
  • Add a test case to ensure that spatial index is used with and order by command by Fortin N.
  • Fix multi-threaded mode update exception "NullPointerException", test case by Anatolii K.
  • Fix multi-threaded mode insert exception "Unique index or primary key violation", test case by Anatolii K.
  • Implement ILIKE operator for case-insensitive matching.
  • Optimise LIKE queries for the common cases of '%Foo' and '%Foo%'.
  • Issue #387: H2 MSSQL Compatibility Mode - Support uniqueidentifier.
  • Issue #401: NPE in "SELECT DISTINCT * ORDER BY".
  • Added BITGET function.
  • Fixed bug in FilePathRetryOnInterrupt that caused infinite loop.
  • PR #389, Handle LocalTime with nanosecond resolution, patch by katzyn.
  • PR #382, Recover for "page store" H2 breaks LOBs consistency, patch by vitalus.
  • PR #393, Run tests on Travis, patch by marschall.
  • Fix bug in REGEX_REPLACE, not parsing the mode parameter.
  • ResultSet.getObject(..., Class) threw a ClassNotFoundException if the JTS suite was not in the classpath.
  • File systems: the "cache:" file system, and the compressed in-memory file systems memLZF and nioMemLZF did not correctly support concurrent reading and writing.
  • TIMESTAMP WITH TIMEZONE: serialization for the PageStore was broken.