▲
Search:
| Highlight keyword(s)
Home Download Cheat Sheet Documentation Quickstart Installation Tutorial Features Security Performance Advanced Reference Commands Functions • Aggregate • Window Data Types SQL Grammar System Tables Javadoc PDF (2 MB) Support FAQ Error Analyzer Google Group Appendix History License Build Links MVStore Architecture Migration to 2.0 |  | # Change Log ## Next Version (unreleased) Nothing yet... ## Version 2.2.220 (2023-07-04) PR #3834: Increase database format version PR #3833: Disallow plain webAdminPassword values to force usage of hashes PR #3831: Add Oracle-style NOWAIT, WAIT n, and SKIP LOCKED to FOR UPDATE clause RP #3830: Fix time zone of time/timestamp with time zone AT LOCAL PR #3822 / Issue #2671: Add quantified comparison predicates with array PR #3820: Add partial implementation of JSON simplified accessor PR #3818: Add support of underscores in numeric literals PR #3817: Add ANY_VALUE() aggregate function PR #3814: Fix regression in comparisons with infinities and NaNs Issue #3040: System objectIds are recycled twice when CTE queries are executed. PR #3812: UNIQUE null treatment PR #3811: BTRIM function, octal and binary literals and other changes Issue #352: In comparison text values are converted to INT even when they should be converted to BIGINT PR #3797: MSSQL mode: Discard table hints on plain UPDATE statements PR #3791: Formatted cast of datetimes to/from character strings Issue #3785: CSVRead: Fails to translate empty Numbers, when cells are quoted Issue #3762: Comparison predicates with row values don't create index conditions PR #3761: LAST_DAY function and other changes Issue #3705: Oracle DATE type: milliseconds (second fractions) rounded in H2 but truncated in Oracle (fixed in SYSDATE only) Issue #3642: AssertionError in mvstore.FileStore.serializeAndStore Issue #3675: H2 2.x cannot read PostgreSQL-style sequence generator start with option without WITH keyword Issue #3757: FORMATDATETIME function doesn't handle time with time zone properly PR #3756: Limit the row list allocation based on the row count PR #3753: Add missing NEWSEQUENTIALID function in MSSQLServer mode Issue #3730: FILE_READ from JAR filesystem on classpath results in file of length 0 PR #3749: Fix min/max description for sequences PR #3739: Fix count(*) for linked table to Oracle Issue #3731: Division result exceeds numeric precision constraint PR #3718: Add test coverage for JDK 17 Issue #3580: TestCrashAPI: NPE in ParserUtil.getTokenType() (called by Parser.readIfDataType1()) PR #3709: Update copyright years and fix building of documentation Issue #3701: CLOBs can cause ClassCastExceptions Issue #3698: MySQL mode show columns from table, if modificationMetaId changed between prepared and execute. Then error occurred. PR #3699: Upgrade to the latest OSGi JDBC specification Issue #3659: User-defined variable "sticky" if used in view with join Issue #3693: Wrong result when intersecting unnested arrays PR #3691: GitHub Workflows security hardening PR #3688: Construct FormatTokenEnum.TOKENS during class initialization Issue #3682: MVStoreException at accountForRemovedPage Issue #3664: [2.1.214] NullPointerException in org.h2.command.query.Select.queryDistinct PR #3650: fix version number in the archives html table PR #3649: Basic implementation of materialized view Issue #3646: org.h2.mvstore.MVStoreException: Chunk metadata too long Issue #3645: The BITCOUNT function incorrectly counts BINARY/VARBINARY values of >=16 bytes. Issue #3637: DB content massacred when opening a 2.1.214 DB with current master Issue #3636: "This store is closed" after two-phase commit PR #3639: Add random_uuid() alias to be compatible with postgres Issue #3640: SOUNDEX function should not be case-sensitive Issue #3633: Memory leak in case of in-memory database PR #3629 Better separation between MVStore and FileStore PR #3626: Improve memory estimation of CacheLongKeyLIRS and correct some passed memory sizes Issue #3619: PostgreSQL mode: STRING_AGG with prepared statement parameter not working Issue #3615: H2 Console connecting to Oracle DB will not show the list of tables PR #3613: Fix infinite loop in Tokenizer when special whitespace character is used Issue #3606: Support for GraalVMs native-image Issue #3607: [MySQL] UNIX_TIMESTAMP should return NULL Issue #3604: Improper FROM_1X implementation corrupts some BLOBs during migration Issue #3597: Support array element assignments in UPDATE statements Issue #3599: [2.1.214][MariaDB] DELETE query failure Issue #3600: NPE in MVTable.lock(), version 2.1.214 Issue #3601: InvalidPathException when saving lock file Issue #3583: lob cleaner issue Issue #3585: Misuse ValueReal.DECIMAL_PRECISION when optimize typeinfo from DOUBLE to DECFLOAT Issue #3575: Possible syntax mismatch for json_object in MySQL compatibility mode PR #3577: Add support of TINYINT and DECFLOAT to TO_CHAR Issue #3567: No AUTO_INCREMENT in DatabaseMetaData.getTypeInfo() PR #3555: Add missing check for -webExternalNames flag Issue #3543: PostgreSQL mode, update with "from", why "NULL not allowed" error? PR #3542: Fix failed to delete a readonly file on Windows file systems ## Version 2.1.214 (2022-06-13) Issue #3538: In Postgres compatibility mode the NUMERIC type w/o scale should not default to 0 Issue #3534: Subquery has incorrect empty parameters since 2.1.210 that breaks sameResultAsLast() Issue #3390: "ROW" cannot be set as a non keyword in 2.x Issue #3448: With linked table to postgreSQL, case-sensitive column names not respected in where part Issue #3434: JavaTableFunction is not closing underlying ResultSet when reading column list Issue #3468: Invalid DB format exception (for 1.x DB in 2.x h2) should have a specific SQLException vendorCode Issue #3528: Weird syntax error with HAVING clause in Oracle Mode Issue #3307: Fix SHUTDOWN DEFRAG for encrypted databases Issue #3515: Support for NEXTVAL property in DB2 mode Issue #3444: Conversion 'text' to 'integer' doesn't work anymore Issue #3493: org.h2.tools.DeleteDbFiles won't delete files under certain circumstances Issue #3486: FilePathDisk.newDirectoryStream() may fail on remote drive on Windows due to AccessDeniedException in Path.toRealPath() Issue #3484: LOB issue ## Version 2.1.212 (2022-04-09) Issue #3512: BITNOT(BIT_NAND_AGG(...) OVER ()) produces wrong result Issue #3510: PreparedStatement execution with java.io.tmpdir pointing to a directory symlink results in FileAlreadyExistsException PR #3504: Fix TypeInfo.getHigherGeometry() for types with and without SRID PR #3481: Add support for standard interval literals with precision Issue #3471: Possibility of corruption after SHUTDOWN DEFRAG Issue #3473: DROP TABLE/INDEX causes memory leak PR #3464 / Issue #3457: increase max length of VAR* types PR #3460: fix bug in readStoreHeader() PR #3458: Add performance tests for SQLite Issue #1808: Occasional NPE in concurrent update of LOB Issue #3439: Cannot use enum values in JSON without explicit casts Issue #3426: Regression: BIT(1) is not accepted in MySQL compatibility mode PR #3422: Allow combination of any geometry types with the same SRID Issue #3414: H2 2.1.210: Query with Parameters throws NPE Issue #3413: Parser can't parse REFERENCES … NOT NULL Issue #3410: OOME with nested derived tables Issue #3405: Enhance SCRIPT to support operations on STDOUT Issue #3406 / PR #3407: FunctionMultiReturn.polar2CartesianArray result set iteration throws ClassCastException Issue #3400: Regression: ORDER BY ROWNUM fails with General error: "Unexpected code path" Issue #3387: SYSDATE behavior changed in 2.x Issue #3394: SYSDATE Considered Identifier when used in inner select Issue #3391: Hang on merge statement with data change delta table PR #3384: Remove abandoned Java to C converter and fix some warnings from Sonatype Lift PR #3382: Use secure parser in H2AuthConfigXml to avoid future reports ## Version 2.1.210 (2022-01-17) PR #3381: Add IDENTITY() and SCOPE_IDENTITY() to LEGACY mode Issue #3376: Data cannot be read after insert of clob data > MAX_LENGTH_INPLACE_LOB with data change delta table PR #3377: Add -webExternalNames setting and fix WebServer.getConnection() PR #3367: Use faster checks of dimension systems of geometries PR #3369: Added v2 changes in migration docs Issue #3361: MemoryEstimator.estimateMemory() can return negative size PR #3362: Use BufferedReader instead of BufferedInputStream to avoid Illegal seek exception Issue #3353: Wrong rownum() scope for DML with change delta table PR #3352: make Javadoc happier Issue #3344: Changelog could link to github issue Issue #3340: JDBC index type seems wrong Issue #3336: FT_INIT error when mode=MySQL Issue #3334: Regression with CREATE ALIAS - Parameter "#2" is not set Issue #3321: Insert Primary Key after import CSV Data does not work PR #3323: Tokenize SQL before parsing and preserve tokens for recompilation PR #3320: Add Servlet 5-compatible servlet for H2 Console Issue #918: Parser fails recognising set operations in correlated subqueries Issue #2050: PostgreSQL with recursive fail with union in the final query PR #3316: Update copyright years PR #3315: Never put read locks into lockSharedSessions and other minor changes Issue #492: H2 does not correctly parse <parenthesized joined table> Issue #3311: Parser creates wrong join graph in some cases and uses wrong tables for column mapping FORCE_JOIN_ORDER setting is removed Issue #1983: Official build script is not compatible with Java 13 PR #3305: Add UNIQUE(VALUE) and remove some non-standard keywords PR #3299: Remove useless StringBuilder.toString() call PR #3298: Delete unused sqlTypes array ## Version 2.0.206 (2022-01-04) Issue #3322: Create linked table fails when the table contains a Geometry with a data type specified Issue #3297: Unexpected GROUP BY results with indexed IGNORECASE column ## Version 2.0.204 (2021-12-21) Issue #3291: Add Legacy and Strict modes Issue #3287: SELECT statement works on 1.4.200 but fails on 2.0.202 with "Column XYZ must be in the GROUP BY list" PR #3284: Remove unused UNDO_LOG setting Issue #3251: Table with GEOMETRY column can't have a TriggerAdapter-based trigger any more PR #3281: DateTimeFormatter-based FORMATDATETIME and PARSEDATETIME and other changes Issue #3246: Spatial predicates with comparison are broken in MySQL compatibility mode Issue #3270: org.h2.jdbc.JdbcSQLFeatureNotSupportedException: Feature not supported: "Unsafe comparison or cast" Issue #3268 / PR #3275: Add TO_DATE and TO_TIMESTAMP to PostgreSQL compatibility mode PR #3274: Remove some dead code and unused params Issue #3266: Oracle compatibility NUMBER without precision and scale should have variable scale Issue #3263: Unable to store BigDecimal with negative scale in NUMERIC(19,6) column PR #3261: Small optimization for MIN and MAX Issue #3258 / PR #3259: Prevent incorrect optimization of COUNT(*) and other changes PR #3255: Throw proper exception when type of argument isn't known Issue #3249: Multi-column assignment with subquery throws exception when subquery doesn't return any rows PR #3248: Remove redundant uniqueness check, correct version in pom PR #3247: Avoid AIOBE exception in TestCrashAPI and in Transaction Issue #3241: ResultSetMetaData::getColumnTypeName should produce the correct ARRAY type Issue #3204: H2 Tools Web Console: Unicode 32 Issue #3227: Regression when referencing outer joined column from correlated subquery Issue #3237: Can no longer cast CHAR(n) to BOOLEAN with n > 1 Issue #3235: Regression in IN predicate with empty in list Issue #3236: NullPointerException in DatabaseMetaData::getIndexInfo when querying the info for views Issue #3233: General error when using NULL predicate on _ROWID_ column Issue #3223: TRUNC(v, p) with negative precisions no longer works Issue #3221: NullPointerException when creating domain Issue #3186: ResultSetMetaData.getSchemaName() returns empty string for aliased columns