diff --git a/README.md b/README.md
index 70de378686..715833bdb5 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@ More information: https://h2database.com
com.h2database
h2
- 2.1.210
+ 2.1.214
```
diff --git a/h2/build.sh b/h2/build.sh
index 558a7945ab..769262d58b 100755
--- a/h2/build.sh
+++ b/h2/build.sh
@@ -15,4 +15,4 @@ if [ "$1" = "clean" ] ; then rm -rf temp bin ; fi
if [ ! -d "temp" ] ; then mkdir temp ; fi
if [ ! -d "bin" ] ; then mkdir bin ; fi
"$JAVA_HOME/bin/javac" -sourcepath src/tools -d bin src/tools/org/h2/build/*.java
-"$JAVA_HOME/bin/java" -Xmx512m -cp "bin:$JAVA_HOME/lib/tools.jar:temp" org.h2.build.Build $@
+"$JAVA_HOME/bin/java" -Xmx1g -cp "bin:$JAVA_HOME/lib/tools.jar:temp" org.h2.build.Build $@
diff --git a/h2/pom.xml b/h2/pom.xml
index a0c0085569..9476dbf837 100644
--- a/h2/pom.xml
+++ b/h2/pom.xml
@@ -4,7 +4,7 @@
com.h2database
h2
- 2.1.210
+ 2.2.219-SNAPSHOT
jar
H2 Database Engine
https://h2database.com
@@ -44,7 +44,7 @@
5.6.2
8.5.2
5.0.0
- 42.2.14
+ 42.4.0
4.0.1
5.0.0
1.7.30
diff --git a/h2/src/docsrc/html/advanced.html b/h2/src/docsrc/html/advanced.html
index 68e865b1ff..05b0b96581 100644
--- a/h2/src/docsrc/html/advanced.html
+++ b/h2/src/docsrc/html/advanced.html
@@ -529,8 +529,6 @@
Keywords / Reserved Words
+ | + | + | + | + | + | + |
| FETCH |
+ | + | + | + | + | + | + |
-| FILTER |
-CS | + | + | + | + | | |
| FOR |
+ | + | + | + | + | + | + |
| FOREIGN |
@@ -1813,9 +1811,9 @@ Limits and Limitations
The actual possible number can be smaller if their definitions are too long.
The maximum length of an identifier (table name, column name, and so on) is 256 characters.
The maximum length of CHARACTER, CHARACTER VARYING and VARCHAR_IGNORECASE values and columns
-is 1048576 characters.
+is 1_000_000_000 characters.
The maximum length of BINARY, BINARY VARYING, JAVA_OBJECT, GEOMETRY, and JSON values and columns
-is 1048576 bytes.
+is 1_000_000_000 bytes.
The maximum precision of NUMERIC and DECFLOAT values and columns is 100000.
The maximum length of an ENUM value is 1048576 characters, the maximum number of ENUM values is 65536.
The maximum cardinality of an ARRAY value or column is 65536.
diff --git a/h2/src/docsrc/html/changelog.html b/h2/src/docsrc/html/changelog.html
index 23c1e63e38..b0f75e9a0c 100644
--- a/h2/src/docsrc/html/changelog.html
+++ b/h2/src/docsrc/html/changelog.html
@@ -21,7 +21,88 @@ Change Log
Next Version (unreleased)
-- Nothing yet...
+
- Nothing yet
+
+
+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
@@ -149,1103 +230,5 @@ Version 2.0.204 (2021-12-21)
-Version 2.0.202 (2021-11-25)
-
-- Issue #3206: CVE Vulnerability CVE-2018-14335
-
-- Issue #3174: Add keyword AUTOCOMMIT on create linked table to control the commit mode
-
-- Issue #3130: Precision of NUMERIC values isn't verified in the Oracle compatibility mode
-
-- Issue #3122: Documentation: Syntax diagram for RENAME CONSTRAINT incorrect
-
-- PR #3129: remove LOB compression
-
-- PR #3127: Cleanups post PageStore removal
-
-- PR #3126: Change nested classes to static nested classes where possible
-
-- PR #3125: Strongly typed LobStorageMap
-
-- PR #3124: Remove PageStore engine
-
-- Issue #3118: SHUTDOWN COMPACT causes 2PC to corrupt database in a simulated crash
-
-- Issue #3115: Infinite loop then OOM in org.h2.mvstore.tx.Transaction.waitFor() when deadlock occurs
-
-- Issue #3113: Data lost when 2 threads read/write TransactionStore and close it normally even if MVStore autoCommit
-disabled
-
-- PR #3110: Fix possible int overflow and minor doc change
-
-- Issue #3036: A database that contains BLOBs might grow without being able to be compacted
-
-- Issue #3097: Possible MVStore compaction issue
-
-- PR #3096: Add separate LOB data layer for values
-
-- Issue #3093: ROWNUM filter doesn't work with more than one table
-
-- PR #3087: Add "CONVERT TO CHARACTER SET" to compatibility modes
-
-- Issue #3080: Complex Query returns different results depending on the number of arguments in the IN clause
-
-- Issue #3066: Very high DB opening/closing times
-
-- PR #3077: Add CREATE UNIQUE INDEX ... INCLUDE
-
-- Issue #3061 / PR #3074: GROUP BY using column index for MySQL/MariaDB/PostgreSQL compatibility modes
-
-- PR #3067: Restrict identity data types and result limitation clauses to compatibility modes
-
-- PR #3065: Remove duplicate method IOUtils.getBufferedReader
-
-- Issue #3055: Phantom table leftover after INSERT .. WITH
-
-- PR #3062: Add ALTER DOMAIN RENAME CONSTRAINT command
-
-- Issue #3059: ALTER TABLE DROP CONSTRAINT doesn't check owner of constraint
-
-- Issue #3054: Add binary set aggregate functions
-
-- Issue #3049: Java value getters of ValueNull should throw exceptions
-
-- Issue #3046: SYSTEM_RANGE can't handle bind variable as step size and produces wrong error message
-
-- Issue #3033: NPE during BLOB read after 2PC rollback
-
-- PR #3034: Don't evaluate ValueTimestampTimeZone at begin and end of each command
-
-- PR #3029: Optimize row storage in MVStore and other changes
-
-- PR #3028: Remove back compatibility
-
-- PR #3025: Switch from Travis CI to GitHub Workflows
-
-- PR #3024: Add initial version of upgrade utility
-
-- Issue #3017: ROUND() does not set correct precision and scale of result
-
-- Issue #3003: CREATE TABLE ... AS SELECT ... FROM creates invalid column definition when aggregate functions are used
-
-- Issue #3008: TestCrashAPI: Exception in Arrays.sort() called by LocalResult.done()
-
-- Issue #3006 / PR #3007: Unlock meta during query execution in CREATE TABLE AS query
-
-- PR #3001: PostgreSQL compatibility: UPDATE with FROM
-
-- PR #2998: Fix off-by-one error with -webAdminPassword in Server
-
-- PR #2995: Add FETCH_SIZE clause to CREATE LINKED TABLE
-
-- Issue #2907 / PR #2994: Prevent "Chunk not found" on LOB operations
-
-- PR #2993: Update copyright years
-
-- Issue #2991: TestCrashAPI: NPE in ScriptCommand.dumpDomains()
-
-- Issue #2950 / PR #2987: Issue commit() right before "non-transactional" DDL command starts
-
-- PR #2980: Assorted minor changes
-
-- PR #2966: H2 2.0.201: Linked Tables freeze the Database and freeze the Server Process
-
-- Issue #2972: Memory leak due to negative Page memory in the MVStore
-
-- PR #2971: create skeleton of migration to V2 document
-
-- Issue #2967: MVStore: averageSize int overflow in the class ObjectDataType
-
-- Issue #2963: Syntax error for large hexadecimal constants with DATABASE_TO_UPPER=false
-
-- Issue #2961: Accept CREATE PRIMARY KEY only in metadata or in quirks mode
-
-- Issue #2960: Reject invalid CREATE { UNIQUE | HASH } SPATIAL INDEX
-
-- Issue #2958: TableLink is broken for Oracle database after pull request #2903
-
-- PR #2955: Prevent incorrect index sorting
-
-- PR #2951: Add documentation for INFORMATION_SCHEMA
-
-- PR #2943: some small prep for next release
-
-- PR #2948: Add support of Infinity, -Infinity, and NaN to DECFLOAT data type
-
-- Issue #2947: Encoding of Unicode and special characters in error messages
-
-- Issue #2891: Fix import of unnamed referential constraints from SQL scripts generated by older versions of H2
-
-- Issue #2812: Unexpected result for query that compares an integer with a string
-
-- Issue #2936: Add data type conversion code from datetime and UUID values to JSON
-
-- Issue #2935: ENUM ARRAY isn't read properly from persisted data
-
-- Issue #2923: Combination of fileName() with fileStore() should throw an exception
-
-- Issue #2928: JSON_ARRAYAGG and all NULL values
-
-- PR #2918: Removal of unnecessary lock
-
-- Issue #2911: org.h2.mvstore.MVStoreException: Transaction was illegally transitioned from ROLLING_BACK to
-ROLLED_BACK
-
-- Issue #1022: JdbcDatabaseMetaData.getPseudoColumns() should be implemented
-
-- Issue #2914: (T1.A = T2.B) OR (T1.A = T2.C) should be optimized to T1.A IN(T2.B, T2.C) to allow index conditions
-
-- PR #2903: Assorted changes
-
-- Issue #2901: PgServer returns less rows when fetchSize is set
-
-- Issue #2894: NPE in DROP SCHEMA when unique constraint is removed before linked referential constraint
-
-- Issue #2888: H2 should pass time zone of client to the server
-
-- PR #2890: Fixed possible eternal wait(0)
-
-- Issue #2846: GRANT SELECT, INSERT, UPDATE, DELETE incorrectly gives privileges to drop a table
-
-- Issue #2882: NPE in UPDATE with SELECT UNION
-
-- PR #2881: Store users and roles together and user-defined functions and aggregates together
-
-- Issue #2878: Disallow spatial indexes in PageStore databases
-
-- PR #2874: Use 64-bit row counts in results and other changes
-
-- Issue #2866: New INFORMATION_SCHEMA should not use keywords as column names
-
-- Issue #2867: PageStore + Lazy + INSERT ... SELECT cause infinite loop
-
-- PR #2869: Normalize binary geometry literals and improve EWKB representation of POLYGON EMPTY
-
-- Issue #2860: CHAR columns in PgCatalogTable have incorrect length
-
-- Issue #2848: Add support for standard <listagg overflow clause>
-
-- Issue #2858: Throw 22001 on attempt to use getString() or getBytes() on LOB object longer than 1,048,576
-chars/octets
-
-- Issue #2854: Define limits for identifiers, number of columns, etc.
-
-- PR #2853: Small optimization for Page compression / decompression
-
-- Issue #2832: Define length limits for non-LOB data types
-
-- Issue #2842: Querying view that uses LTRIM/RTRIM results in a syntax error
-
-- Issue #2841: Call to STRINGDECODE results in StringIndexOutOfBoundsException
-
-- Issue #2839: Querying a view that uses the POSITION() function results in an unexpected syntax error
-
-- Issue #2838: INSERT() with NULL arguments for the original string and string to be added results in NPE
-
-- Issue #2837: ROUND() function should reject invalid number of digits immediately
-
-- Issue #2835: Calling math functions with a string argument results in a NullPointerException
-
-- Issue #2833: MERGE INTO causes an unexpected syntax error
-
-- Issue #2831: Restore YEAR data type for MySQL compatibility mode
-
-- Issue #2822: Suspicious logic in Database.closeImpl()
-
-- Issue #2829: Incorrect manifest entries in sources jar
-
-- Issue #2828: Parser can't parse NOT in simple when operand
-
-- Issue #2826: Table with a generated column cycle results in a NullPointerException
-
-- Issue #2825: Query with % operator results in a ClassCastException
-
-- Issue #2818: TableFilter.getValue() can read value of delegated column faster
-
-- Issue #2816: Query on view that uses the BETWEEN operator results in an unexpected syntax error
-
-- PR #2815: Remove BINARY_COLLATION and UUID_COLLATION settings
-
-- Issue #2813: Query with CASE operator unexpectedly results in "Column must be in the GROUP BY list" error
-
-- Issue #2811: Update build numbers and data format versions
-
-- Issue #2674: OPTIMIZE_IN_SELECT shouldn't convert value to incompatible data types
-
-- Issue #2803: Disallow comparison operations between incomparable data types
-
-- Issue #2561: Separate normal functions and table value functions
-
-- Issue #2804: NPE in ConditionNot.getNotIfPossible()
-
-- Issue #2801: Instances of TableView objects leaking
-
-- PR #2799: Additional bit functions BITNAND, BITNOR, BITXNOR, BITCOUNT, ULSHIFT, URSHIFT, ROTATELEFT, ROTATERIGHT,
-BIT_NAND_AGG, BIT_NOR_AGG, and BIT_XNOR_AGG.
-
-- PR #2798: Complete separation of Function class
-
-- Issue #2795: Sporadic issues with trigger during concurrent insert in 1.4.199/1.4.200
-
-- PR #2796: Assorted refactorings
-
-- Issue #2786: Failure in CREATE TABLE AS leaves inconsistent transaction if some rows were successfully inserted
-
-- Issue #2790: Examples in documentation of CREATE ALIAS should use standard literals only
-
-- Issue #2787: CONCAT and CONCAT_WS functions
-
-- PR #2784: Oracle REGEXP_REPLACE support
-
-- Issue #2780: Remove SCOPE_GENERATED_KEYS setting
-
-- PR #2779: Fix incorrect FK restrictions and other changes
-
-- PR #2778: Assorted changes
-
-- Issue #2776: Referential constraint can create a unique constraint in the wrong schema
-
-- Issue #2771: Add documented DEFAULT ON NULL flag for all types of columns
-
-- Issue #2742 / PR #2768: Better separation of MVStore aimed at smaller h2-mvstore jar
-
-- Issue #2764: Identity columns don't accept large numbers
-
-- IDENTITY() function is removed, SCOPE_IDENTITY() is now available only in MSSQLServer compatibility mode.
-
-- Issue #2757: Intermittent TestFileSystem failures
-
-- Issue #2758: Issues with sequences
-
-- PR #2756: Prevent DROP NOT NULL for identity columns
-
-- Issue #2753: UPDATE statement changes value of GENERATED ALWAYS AS IDENTITY columns
-
-- PR #2751: Add comment explaining seemingly dummy operation
-
-- PR #2750: Use RFC 4122 compliant UUID comparison by default
-
-- PR #2748: PgServer set type text to NULL value
-
-- Issue #2746: Old TCP clients with current server
-
-- PR #2745: PgServer can send bool in binary mode
-
-- PR #2744: Remove jarSmall and jarClient targets
-
-- PR #2743: Add IS_TRIGGER_UPDATABLE and other similar fields to INFORMATION_SCHEMA
-
-- PR #2738: Fix VIEWS.VIEW_DEFINITION and support it for other databases in H2 Console
-
-- PR #2737: Assorted changes
-
-- PR #2734: Update dependencies and fix ResultSetMetaData.isSigned()
-
-- PR #2733: Replace h2.sortNullsHigh with DEFAULT_NULL_ORDERING setting
-
-- PR #2731: Fix spelling errors in German translation
-
-- PR #2728: Add and use DATA_TYPE_SQL() function and remove INFORMATION_SCHEMA.PARAMETERS.REMARKS
-
-- Issue #1015: ENUM and arithmetic operators
-
-- Issue #2711: Store normalized names of data types in metadata
-
-- PR #2722: Implement getRowCount() for some INFORMATION_SCHEMA tables
-
-- PR #2721: Improve LOCKS, SESSIONS, and USERS and optimize COUNT(*) on other isolation levels in some cases
-
-- Issue #2655: TestCrashAPI: AssertionError at MVPrimaryIndex.<init>
-
-- Issue #2716: Fix URL of Maven repository
-
-- Issue #2715: Mention `DB_CLOSE_DELAY=-1` flag in JDBC URL on the "Cheat Sheet" page
-
-- PR #2714: fixed few code smells discovered by PVS-Studio
-
-- Issue #2712: `NOT LIKE` to a sub-query doesn't work
-
-- PR #2710: PgServer: set oid and attnum in RowDescription
-
-- Issue #2254: Add standard DECFLOAT data type
-
-- PR #2708: Add declared data type attributes to the INFORMATION_SCHEMA
-
-- Issue #2706: Empty comments / remarks on objects
-
-- PR #2705: Return standard-compliant DATA_TYPE for strings
-
-- PR #2703: Fix case-insensitive comparison issues with national characters
-
-- Issue #2701: Subquery with FETCH should not accept global conditions
-
-- Issue #2699: Remove FUNCTIONS_IN_SCHEMA setting
-
-- Issue #452: Add possibility to use user-defined aggregate functions with schema
-
-- PR #2695: Refactor handling of parentheses in getSQL() methods
-
-- PR #2693: disallow VARCHAR_IGNORECASE in PostgreSQL mode
-
-- Issue #2407: Implement CHAR whitespace handling correctly
-
-- PR #2685: Check existing data in ALTER DOMAIN ADD CONSTRAINT
-
-- PR #2683: Fix data types in Transfer
-
-- PR #2681: Report user functions in standard ROUTINES and PARAMETERS views
-
-- PR #2680: Reimplement remaining DatabaseMetaData methods and fix precision of binary numeric types
-
-- PR #2679: Reimplement getTables(), getTableTypes(), and getColumns()
-
-- PR #2678: Reimplement getPrimaryKeys(), getBestRowIdentifier(), getIndexInfo() and others
-
-- PR #2675: Reimplement getImportedKeys(), getExportedKeys(), and getCrossReferences()
-
-- PR #2673: Reimplement some metadata methods
-
-- PR #2672: Forward DatabaseMetaData calls to server
-
-- Issue #2329: Content of INFORMATION_SCHEMA should be listed as VIEWS
-
-- PR #2668: Sequence generator data type option and length parameter for JSON data type
-
-- PR #2666: Add ALTER DOMAIN RENAME command
-
-- PR #2663: Add ALTER DOMAIN { SET | DROP } { DEFAULT | ON UPDATE }
-
-- PR #2661: Don't allow construction of incomplete ARRAY and ROW data types
-
-- Issue #2659: NULLIF with row values
-
-- PR #2658: Extract date-time and some other groups of functions into own classes
-
-- PR #2656: add `_int2` and `_int4` for PgServer
-
-- PR #2654: Move out JSON, cardinality, ABS, MOD, FLOOR, and CEIL functions from the Function class
-
-- PR #2653: Use full TypeInfo for conversions between PG and H2 data types
-
-- PR #2652: Add "SHOW ALL"
-
-- PR #2651: add `pg_type.typelem` and `pg_type.typdelim`
-
-- PR #2649: Extract some groups of functions from Function class
-
-- PR #2646: Add some PostgreSQL compatibility features
-
-- PR #2645: Add CURRENT_PATH, CURRENT_ROLE, SESSION_USER, and SYSTEM_USER
-
-- Issue #2643: Send PG_TYPE_TEXTARRAY values to ODBC drivers properly
-
-- PR #2642: Throw proper exceptions from array element reference and TRIM_ARRAY
-
-- PR #2640: German translations
-
-- Issue #2108: Add possible candidates in different case to table not found exception
-
-- Issue #2633: Multi-column UPDATE assignment needs to be reimplemented
-
-- PR #2635: Implement REGEXP_SUBSTR function
-
-- PR #2632: Improve ROW data type
-
-- PR #2630: fix: quoted VALUE in documentation
-
-- Issue #2628: Cached SQL throws JdbcSQLSyntaxErrorException if executed with different parameter values than before
-
-- Issue #2611: Add quantified distinct predicate
-
-- Issue #2620: LOBs in triggers
-
-- PR #2619: ARRAY_MAX_CARDINALITY and TRIM_ARRAY functions
-
-- PR #2617: Add Feature F262: Extended CASE expression
-
-- PR #2615: Add feature T461: Symmetric BETWEEN predicate
-
-- PR #2614: Fix support of multi-dimensional arrays in Java functions
-
-- Issue #2608: Improve concatenation operation for multiple operands
-
-- PR #2605: Assorted minor changes
-
-- Issue #2602: H2 doesn't allow to create trigger from Java source code if there are nested classes
-
-- PR #2601: Add field SLEEP_SINCE to INFORMATION_SCHEMA.SESSIONS table
-
-- Issue #1973: Standard MERGE statement doesn't work with views
-
-- Issue #2552: MERGE statement should process each row only once
-
-- Issue #2548: Wrong update count when MERGE statement visits matched rows more than once
-
-- Issue #2394: H2 does not accept DCL after source merge table
-
-- Issue #2196: Standard MERGE statement doesn't release the source view
-
-- Issue #2567: ARRAY-returning Java functions don't return the proper data type
-
-- Issue #2584: Regression in NULL handling in multiple AND or OR conditions
-
-- PR #2577: PgServer: `array_to_string()` and `set join_collapse_limit`
-
-- PR #2568: Add BIT_XOR_AGG aggregate function
-
-- PR #2565: Assorted minor changes
-
-- PR #2563: defrag is not contributing much, remove from test run
-
-- PR #2562: new exception MVStoreException
-
-- PR #2557: don't throw IllegalStateException in checkOpen
-
-- PR #2554: Reenable mvstore TestCrashAPI
-
-- Issue #2556: TestOutOfMemory: Table "STUFF" not found
-
-- PR #2555: Move current datetime value functions into own class
-
-- PR #2547: split up the ValueLob classes
-
-- PR #2542: Pipelining mvstore chunk creation / save
-
-- Issue #2550: NullPointerException with MERGE containing unknown column in AND condition of WHEN
-
-- Issue #2546: Disallow empty CASE specifications and END CASE
-
-- Issue #2530: Long query with many AND expressions causes StackOverflowError
-
-- PR #2543: Improve case specification support and fix some issues with it
-
-- Issue #2539: Replace non-standard functions with standard code directly in Parser
-
-- Issue #2521: Disallow untyped arrays
-
-- Issue #2532: Duplicate column names in derived table should be acceptable in the presence of a derived column list
-that removes ambiguities
-
-- PR #2527: Feature: allow @ meta commands from Console
-
-- PR #2526: Reduce I/O during database presence check and restrict some compatibility settings to their modes
-
-- PR #2525: Restore support of third-party drivers in the Shell tool
-
-- Issue #1710: getHigherType() returns incorrect type for some arguments
-
-- PR #2516: SHUTDOWN IMMEDIATELY should be a normal shut down
-
-- PR #2515: Fix nested comments in ScriptReader
-
-- Issue #2511: Restrict Oracle compatibility functions to Oracle compatibility mode
-
-- PR #2508: Minor refactoring around Tx isolation level
-
-- PR #2505: Assorted changes in DATEADD, DATEDIFF, DATE_TRUNC, and EXTRACT
-
-- Issue #2502: Combination of DML with data change delta table skips subsequent update
-
-- PR #2499: Performance fix for PageStore under concurrent load
-
-- PR #2498: Add some PostgreSQL compatibility features mentioned in issue #2450
-
-- Issue #2496: Error when using empty JSON_OBJECT() or JSON_ARRAY() functions
-
-- PR #2495: Fix JSON_OBJECT grammar in documentation
-
-- Issue #2493 / PR #2494: Replace ColumnNamer with mode-specific generation of column names for views
-
-- PR #2492: Assorted changes in parser, keywords, and ILIKE condition
-
-- PR #2490: Replace pg_catalog.sql with PgCatalogTable and use DATABASE_TO_LOWER in PG Server
-
-- Issue #2488 / PR #2489: Mark version functions as not deterministic
-
-- Issue #2481: Convert TO to keyword
-
-- PR #2476: Add some PostgreSQL compatibility features mentioned in issue #2450
-
-- PR #2479: Recognize absolute path on Windows without drive letter
-
-- Issue #2475: Select order by clause is exported with non-portable SQL
-
-- Issue #2472: Updating column to empty string in Oracle mode with prepared statement does not result in null
-
-- PR #2468: MVStore scalability improvements
-
-- PR #2466: Add partial support for MySQL COLLATE and CHARACTER statements
-
-- Issue #2464: `client_encoding='utf-8'` (single quoted) from `node-postgres` not recognized
-
-- Issue #2461: Support for binary_float and binary_double type aliases
-
-- Issue #2460: Exception when accessing empty arrays
-
-- Issue #2318: Remove incorrect rows from DatabaseMetaData.getTypeInfo() and INFORMATION_SCHEMA.TYPE_INFO
-
-- Issue #2455: `bytea` column incorrectly read by `psycopg2`
-
-- PR #2456: Add standard array value constructor by query
-
-- PR #2451: Add some PostgreSQL compatibility features mentioned in issue #2450
-
-- Issue #2448: Change default data type name from DOUBLE to DOUBLE PRECISION
-
-- PR #2452: Do not use unsafe and unnecessary FROM DUAL internally
-
-- PR #2449: Add support for standard trigraphs
-
-- Issue #2439: StringIndexOutOfBoundsException when using TO_CHAR
-
-- Issue #2444: WHEN NOT MATCHED THEN INSERT should accept only one row
-
-- Issue #2434: Next value expression should return the same value within a processed row
-
-- PR #2437: Assorted changes in MVStore
-
-- Issue #2430: Postgres `bytea` column should be read with and without `forceBinary`
-
-- Issue #2267: BINARY and VARBINARY should be different
-
-- Issue #2266: CHAR and BINARY should have length 1 by default
-
-- PR #2426: Add MD5 and all SHA-1, SHA-2, and SHA-3 digests to the HASH() function
-
-- Issue #2424: 0 should not be accepted as a length of data type
-
-- Issue #2378: JAVA_OBJECT and TableLink
-
-- Issue #2417: Casts between binary strings and non-string data types
-
-- Issue #2416: OTHER and JAVA_OBJECT
-
-- Issue #2379: SQL export can change data type of a constant
-
-- Issue #2411: ArrayIndexOutOfBoundsException when HAVING and duplicate columns in SELECT
-
-- Issue #2194: Add own enumeration of data types to API
-
-- PR #2408: Descending MVMap and TransactionMap cursor
-
-- Issue #2399: Cast to ARRAY with a nested ARRAY does not check the maximum cardinality of the nested ARRAY
-
-- Issue #2402: Remove old ValueLob and DbUpgrade
-
-- Issue #2400: Inconsistent data type conversion between strings and LOBs
-
-- PR #2398: Add expandable flags for SQL generation methods
-
-- PR #2395: Fix for two recent page format bugs
-
-- PR #2386: Chunk occupancy mask
-
-- PR #2385: Memory estimate
-
-- PR #2381: Follow up REPEATABLE_READ-related changes
-
-- PR #2380: use JIRA tracker URLs for JDK bugs
-
-- PR #2376: Fix IN condition with row value expressions in its right side
-
-- Issue #2367 / PR #2370: fix backward compatibility with 1.4.200
-
-- Issue #2371: REPEATABLE READ isolation level does not work in MVStore
-
-- Issue #2363: Soft links in -baseDir and database path cause error 90028
-
-- Issue #2364: TestScript datatypes/timestamp-with-time-zone.sql fails if TZ=Europe/Berlin
-
-- Issue #2359: Complete implementation of generated columns
-
-- PR #2361: Fix unused result
-
-- PR #2353: Push binary search operation from Page to DataType
-
-- Issue #2348: Add USING clause to ALTER COLUMN CHANGE DATA TYPE
-
-- Issue #2350: License Problem in POM
-
-- Issue #2345: Add standard SET TIME ZONE command to set current time zone of the session
-
-- PR #2341: Cleanup file backend sync
-
-- Issue #2343: Domain-based domains: Domain not found after reconnection
-
-- Issue #2338: Domains should not support NULL constraints
-
-- Issue #2334: build target mavenInstallLocal broken since commit 7cbbd55e
-
-- #2335: TestDateTimeUtils fails if system timezone has DST in the future
-
-- Issue #2330: Syntax error with parenthesized expression in GROUP BY clause
-
-- Issue #2256: <interval value expression> with datetime subtraction
-
-- Issue #2325: H2 does not parse nested bracketed comments correctly
-
-- Issue #466: Confusion about INFORMATION_SCHEMA content related to UNIQUE constraints
-
-- PR #2323: Assorted changes
-
-- Issue #2320: Remove SAMPLE_SIZE clause from SELECT
-
-- Issue #2301: Add compatibility setting to accept some keywords as identifiers
-
-- PR #2317: Replace CHECK_COLUMN_USAGE with CONSTRAINT_COLUMN_USAGE and other changes
-
-- Issue #2315: Sequence must remember its original START WITH value
-
-- Issue #2313: DISTINCT does not work in ordered aggregate functions
-
-- PR #2306: Add support for RESTART of sequence without initial value
-
-- Issue #2304: NPE in multiple define commands in one statement after upgrade from H2 4.1.197
-
-- PR #2303: Assorted minor changes
-
-- Issue #2286: Inline check constraints not in INFORMATION_SCHEMA
-
-- PR #2300: Continue generification of MVStore codebase
-
-- PR #2298: add some minimal security documentation
-
-- PR #2292: synchronize fileBase subclasses use of position
-
-- PR #2238: Some MVStore refactoring
-
-- Issue #2288: ConcurrentModificationException during commit
-
-- Issue #2293: Remove TestClearReferences and workarounds for old versions of Apache Tomcat
-
-- Issue #2288: ConcurrentModificationException during commit
-
-- PR #2284: Remove unrelated information from README and add some information about H2
-
-- PR #2282: add PostgreSQL compatible variable STATEMENT_TIMEOUT
-
-- PR #2280: little comment
-
-- Issue #2205: H2 1.4.200 split FS issue
-
-- Issue #2272: UpdatableView and obtaining the Generated Keys
-
-- PR #2276: Split up filesystem classes
-
-- PR #2275: improve detection of JAVA_HOME on Mac OS
-
-- Issue #2268: Numeric division needs better algorithm for scale selection
-
-- Issue #2270: IGNORE_UNKNOWN_SETTINGS is ignored
-
-- PR #2269: Fix existence check of non-persistent databases
-
-- Issue #1910: BinaryOperation should evaluate precision and scale properly
-
-- PR #2264: Clean up redundant parts of file system abstraction
-
-- PR #2262: add setting AUTO_COMPACT_FILL_RATE
-
-- Issue #2255 / PR #2259: Use NIO2 in main sources and build
-
-- PR #2257: Catch java.lang.NoClassDefFoundError
-
-- Issue #2241: Mark H2-specific and compatibility only clauses in documentation
-
-- PR #2246: Update third-party drivers
-
-- Issue #2239 / PR #2236: Add NETWORK_TIMEOUT setting for SO_TIMEOUT
-
-- PR #2235: Don't use RandomAccessFile in FilePathNio
-
-- Issue #2233: "Prepared.getObjectId() was called before" when granting on multiple tables
-
-- PR #2230: Add factory methods for Row
-
-- Issue #2226, PR #2227: Remove support of Apache Ignite
-
-- PR #2224: Update some hyperlinks and use https in them where possible
-
-- PR #2223: Fix data change delta tables in views
-
-- Issue #1943: Deadlock in TestTriggersConstraints
-
-- PR #2219: do not retry failed DDL commands
-
-- PR #2214: Fix TRACE_LEVEL_FILE=4 for in-memory databases
-
-- PR #2216: Add FileChannel.lock in the connection URL summary
-
-- PR #2215: Add white-space: pre to tables with query results
-
-- Issue #2213: NUMERIC scale can be larger than a precision
-
-- PR #2212: Get rid of multi-version CurrentTimestamp and fix negative scale of NUMERIC
-
-- PR #2210: Meta table extras
-
-- PR #2209: Add standard expressions with interval qualifier
-
-- PR #2195: Feature abort_session function
-
-- PR #2201: Add padding to negative years and other changes
-
-- PR #2197: Add some additional methods from JDBC 4.2 and return 4.2 as supported version
-
-- PR #2193: Require Java 8 and remove Java 7 support
-
-- Issue #2191: NPE with H2 v1.4.200 repeatable read select queries
-
-- Issue #1390: Add standard-compliant ARRAY data type syntax
-
-- PR #2186: Refactor Parser.parseColumnWithType() and fix some minor issues with CAST
-
-- Issue #2181: SET EXCLUSIVE quirks
-
-- PR #2173: Move snapshots from Transaction to TransactionMap
-
-- Issue #2175: Regression: NPE in ResultSet#getTime(int)
-
-- Issue #2171: Wrong PostgreSQL compatibility syntax for the creation of indexes
-
-- PR #2169: Clean up some find methods of indexes and fix minor issues with them
-
-
-
-Version 1.4.200 (2019-10-14)
-
-- PR #2168: Add non-standard SNAPSHOT isolation level to MVStore databases
-
-- Issue #2165: Problem with secondary index on SERIALIZABLE isolation level
-
-- Issue #2161: Remove undocumented PageStore-only FILE_LOCK=SERIALIZED
-
-- PR #2155: Reduce code duplication
-
-- Issue #1894: Confusing error message when database creation is disallowed
-
-- Issue #2123: Random failures in TestTransactionStore
-
-- Issue #2153: Different behavior in SET LOCK_TIMEOUT after 1.4.197
-
-- Issue #2150: Remove MULTI_THREADED setting and use multi-threaded MVStore and single-threaded PageStore backends
-
-- Issue #216: Support READ UNCOMMITTED isolation level in MVStore mode
-
-- Issue #678: Support REPEATABLE READ isolation level in MVStore mode
-
-- Issue #174: Support SERIALIZABLE isolation level in MVStore mode
-
-- Issue #2144: MVStore: read uncommitted doesn't see committed rows
-
-- Issue #2142: CURRVAL / CURRENT VALUE FOR should return the value for the current session
-
-- Issue #2136: ConstraintCheck concurrency regression
-
-- PR #2137: Don't use SYSTEM_RANGE for SELECT without a FROM
-
-- PR #2134: Assorted fixes and other changes in DateTimeUtils
-
-- PR #2133: Optimize COUNT([ALL] constant) and other changes
-
-- PR #2132: Typo and another bug in MVStore.readStoreHeader()
-
-- Issue #2130: Group-sorted query returns invalid results with duplicate grouped columns in select list
-
-- Issue #2120: Add IF EXISTS clause to column name in ALTER TABLE ALTER COLUMN statement
-
-- Issue #521: Add support for the TIME WITH TIME ZONE data type
-
-- PR #2127: Fix race condition / performance issue during snapshotting
-
-- Issue #2124: MVStore build is broken
-
-- PR #2122: Add support for LMT in time zones and fix large years in datetime values
-
-- Issue #2067: Incorrect chunk space allocation during chunks movement
-
-- PR #2066: Not so happy path - "four alternatives" implementation
-
-- PR #2121: Reduce code duplication for datetime API with custom Calendar instances
-
-- PR #2119: SQL: statement read consistency
-
-- Issue #2116: Empty IN() operator should result in error (MSSQL)
-
-- Issue #2036: CAST from TIME to TIMESTAMP returns incorrect result
-
-- PR #2114: Assorted changes
-
-- PR #2113: Add feature F411: Time zone specification
-
-- PR #2111: CURRENT_CATALOG, SET CATALOG and other changes
-
-- Issue #2109: IW date formatting does not produce proper output
-
-- PR #2104: Fix ordinary grouping set with parentheses and empty grouping set in GROUP BY
-
-- Issue #2103: Add QUOTE_IDENT() function to enquote an identifier in SQL
-
-- Issue #2075: Add EXECUTE IMMEDIATE implementation
-
-- PR #2101: Fix infinite loop in Schema.removeChildrenAndResources()
-
-- Issue #2096: Convert LEFT and RIGHT to keywords and disallow comma before closing parenthesis
-
-- PR #2098: Fix typos
-
-- Issue #1305 / PR #2097: Remove unused and outdated website translation infrastructure
-
-- PR #2093: CURRENT VALUE FOR and other sequence-related changes
-
-- PR #2092: Allow to simulate usage of multiple catalogs by one connection
-
-- PR #2091: Oracle mode now uses DECIMAL with NEXTVAL
-
-- Issue #2088: Division by zero caused by evaluation of global conditions before local conditions
-
-- Issue #2086: TCP_QUICKACK on server socket
-
-- Issue #2073: TableLink should not pass queries to DatabaseMetaData.getColumns()
-
-- Issue #2074: MySQL and MSSQLServer Mode: TRUNCATE TABLE should always RESTART IDENTITY
-
-- Issue #2063: MySQL mode: "drop foreign key if exists" support
-
-- PR #2061: Use VirtualTable as a base class for RangeTable
-
-- PR #2059: Parse IN predicate with multiple subqueries correctly
-
-- PR #2057: Fix TestCrashAPI failure with Statement.enquoteIdentifier()
-
-- PR #2056: Happy path: speed up database opening
-
-- Issue #2051: The website shows outdated information about the storage engine
-
-- PR #2049: bugfix - mvstore data lost issue when partial write occurs
-
-- PR #2047: File maintenance
-
-- PR #2046: Recovery mode
-
-- Issue #2044: setTransactionIsolation always call commit() even if transaction is auto-commit
-
-- Issue #2042: Add possibility to specify generated columns for query in web console
-
-- Issue #2040: INFORMATION_SCHEMA.SETTINGS contains irrelevant settings
-
-- PR #2038: MVMap: lock reduction on updates
-
-- PR #2037: Fix SYS_GUID, RAWTOHEX, and HEXTORAW in Oracle mode
-
-- Issue #2016: ExpressionColumn.mapColumns() performance complexity is quadratic
-
-- Issue #2028: Sporadic inconsistent state after concurrent UPDATE in 1.4.199
-
-- PR #2033: Assorted changes
-
-- Issue #2025: Incorrect query result when (OFFSET + FETCH) > Integer.MAX_VALUE
-
-- PR #2023: traverseDown() code deduplication
-
-- PR #2022: Mvmap minor cleanup
-
-- Issue #2020: Wrong implementation of IN predicate with subquery
-
-- PR #2003: Change dead chunks determination algorithm
-
-- Issue #2013: DECIMAL is casted to double in ROUND function
-
-- PR #2011: ZonedDateTime and (INTERVAL / INTERVAL)
-
-- Issue #1997: TestRandomSQL failure with ClassCastException
-
-- Issue #2007: PostgreSQL compatibility mode: support ON CONFLICT DO NOTHING
-
-- Issue #1927: Do not allow commit() when auto-commit is enabled
-
-- PR #1998: Reduce TxCounter memory footprint
-
-- PR #1999: Make RootReference lock re-entrant
-
-- PR #2001: Test improvements, OOME elimination
-
-- Issue #1995: Obscure condition in MVPrimaryIndex.extractPKFromRow()
-
-- Issue #1975: Add client ip address to information_schema
-
-- PR #1982: Hindi language translation added
-
-- Issue #1985: Add thread number to TCP server thread names
-
-- Do not allow empty password for management DB
-
-- Issue #1978: getGeneratedKeys() can use the same rules as FINAL TABLE
-
-- PR #1977: Change JSON literals and add support for compound character literals
-
-- PR #1974: Use proleptic Gregorian calendar for datetime values
-
-- Issue #1847: Add support for data change delta tables
-
-- PR #1971: Add maximum cardinality parameter to ARRAY data type
-
-- PR #1970: Switch from log map rename to "committed" marker log record
-
-- PR #1969: Add unique predicate
-
-- Issue #1963: Expression.addFilterConditions() with outer joins
-
-- PR #1966: Add standard CURRENT_SCHEMA function
-
-- PR #1964: Add Feature T571: Truth value tests
-
-- PR #1962: Fix data types of optimized conditions
-
-- PR #1961: Failure to open DB after improper shutdown
-
-- Issue #1957: NullPointerException with DISTINCT and ORDER BY CASE
-
-- PR #1956: Fix row value handling in the null predicate
-
-- PR #1955: Add standard UNKNOWN literal
-
-- Issue #1952: Connection.setSchema doesn't work with query cache
-
-- PR #1951: Assorted changes
-
-- PR #1950: Fix NULL handling in ARRAY_AGG
-
-- PR #1949: Extract aggregate and window functions into own pages in documentation
-
-- PR #1948: Add standard LOG() function with two arguments
-
-- Issue #1935: Improve file locking on shared filesystems like SMB
-
-- PR #1946: Reimplement table value constructor on top of Query
-
-- PR #1945: Fix IN (SELECT UNION with OFFSET/FETCH)
-
-- Issue #1942: MySQL Mode: convertInsertNullToZero should be turned off by default?
-
-- Issue #1940: MySQL Mode: Modify column from NOT NULL to NULL syntax
-
-- PR #1941: Extract OFFSET / FETCH handling from Select and SelectUnion to Query
-
-- Issue #1938: Regression with CREATE OR REPLACE VIEW. Causes "Duplicate column name" exception.
-
-- PR #1937: Get rid of FunctionCursorResultSet
-
-- Issue #1932: Incoherence between DbSettings.mvStore and getSettings()
-
-- PR #1931: Fix wildcard expansion for multiple schemas
-
-- PR #1930: Move PageStore table engine into own package
-
-- PR #1929: Initial implementation of type predicate and other changes
-
-- PR #1926: Assorted improvements for BINARY data type
-
-- Issue #1925: Support SQL Server binary literal syntax
-
-- Issue #1918: MySQL: CREATE TABLE with both CHARSET and COMMENT failed
-
-- Issue #1913: MySQL: auto_increment changing SQL not supported
-
-- Issue #1585: The translate function on DB2 mode could have parameters order changed
-
-- PR #1914: Change storage and network format of JSON to byte[]
-
-- Issue #1911: Foreign key constraint does not prevent table being dropped
-
-- PR #1909: Add JSON_OBJECTAGG and JSON_ARRAYAGG aggregate functions
-
-- PR #1908: Cast VARCHAR to JSON properly and require FORMAT JSON in literals
-
-- PR #1906: Add JSON_OBJECT and JSON_ARRAY functions
-
-- Issue #1887: Infinite recursion in ConditionAndOr.java
-
-- Issue #1903: MSSQLServer Mode - Support Update TOP(X)
-
-- Issue #1900: Support SQLServer stored procedure execution syntax
-
-- PR #1898: Add IS JSON predicate
-
-- Issue #1896: MSSQLServer compatibility mode - GETDATE() incorrectly omits time
-
-- PR #1895: Add standard array concatenation operation
-
-- Issue #1892: Window aggregate functions return incorrect result without window ordering and with ROWS unit
-
-- Issue #1890: ArrayIndexOutOfBoundsException in MVSortedTempResult.getKey
-
-- Issue #308: Mode MySQL and LAST_INSERT_ID with argument
-
-- Issue #1883: Suspicious code in Session.getLocks()
-
-- Issue #1878: OPTIMIZE_REUSE_RESULTS causes incorrect result after rollback since 1.4.198
-
-- PR #1880: Collation names like CHARSET_* recognition
-
-- Issue #1844: MySQL Compatibility: create table error when primary key has comment
-
-- PR #1873: Concurrency in database metadata
-
-- Issue #1864: Failing to format NotSerializableException corrupting the database
-
-- PR #1868: add more checking to TestFileLock
-
-- Issue #1819: Trace.db file exceed file size limit (64MB)
-
-- Issue #1861: Use COALESCE in named columns join for some data types
-
-- PR #1860: Additional fix for deadlock on shutdown (exclusively in PageStore mode)
-
-- Issue #1855: Wrong qualified asterisked projections in named column join
-
-- Issue #1854: Wrong asterisked projection and result in named column right outer join
-
-- Issue #1852: Named column joins doesn't work with the VALUES constructor and derived column lists
-
-- Issue #1851: Wrong asterisked projection in named column joins
-
-- PR #1850: Duplicate map identifiers
-
-- PR #1849: Reimplement MVStore.findOldChunks() with PriorityQueue
-
-- PR #1848: Reimplement MVStore.findChunksToMove() with PriorityQueue
-
-- Issue #1843: Named columns join syntax is not supported
-
-- Issue #1841: Deadlock during concurrent shutdown attempts with 1.4.199
-
-- Issue #1834: NUMERIC does not preserve its scale for some values
-
-- PR #1838: Implement conversion from JSON to GEOMETRY
-
-- PR #1837: Implement conversion from GEOMETRY to JSON
-
-- PR #1836: Add LSHIFT and RSHIFT function
-
-- PR #1833: Add BITNOT function
-
-- PR #1832: JSON validation and normalization
-
-- PR #1829: MVStore chunks occupancy rate calculation fixes
-
-- PR #1828: Basis for implementation of SQL/JSON standard
-
-- PR #1827: Add support for Lucene 8.0.0
-
-- Issue #1820: Performance problem on commit
-
-- Issue #1822: Use https:// in h2database.com hyperlinks
-
-- PR #1817: Assorted minor changes in documentation and other places
-
-- PR #1812: An IllegalStateException that wraps EOFException is thrown when partial writes happens
-
-