diff --git a/README.md b/README.md
index 3105990c31..70de378686 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@ More information: https://h2database.com
com.h2database
h2
- 2.0.204
+ 2.1.210
```
diff --git a/h2/pom.xml b/h2/pom.xml
index 1a7bf3295b..a0c0085569 100644
--- a/h2/pom.xml
+++ b/h2/pom.xml
@@ -4,7 +4,7 @@
com.h2database
h2
- 2.0.203-SNAPSHOT
+ 2.1.210
jar
H2 Database Engine
https://h2database.com
@@ -45,7 +45,8 @@
8.5.2
5.0.0
42.2.14
- 4.0.1
+ 4.0.1
+ 5.0.0
1.7.30
UTF-8
@@ -56,7 +57,12 @@
javax.servlet
javax.servlet-api
- ${servlet.version}
+ ${javax.servlet.version}
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ ${jakarta.servlet.version}
org.apache.lucene
diff --git a/h2/src/docsrc/help/information_schema.csv b/h2/src/docsrc/help/information_schema.csv
index fc47ab89b4..8008bb1e46 100644
--- a/h2/src/docsrc/help/information_schema.csv
+++ b/h2/src/docsrc/help/information_schema.csv
@@ -1,4 +1,4 @@
-# Copyright 2004-2021 H2 Group. Multiple-Licensed under the MPL 2.0,
+# Copyright 2004-2022 H2 Group. Multiple-Licensed under the MPL 2.0,
# and the EPL 1.0 (https://h2database.com/html/license.html).
# Initial Developer: H2 Group
diff --git a/h2/src/docsrc/html/advanced.html b/h2/src/docsrc/html/advanced.html
index f5189b37e1..68e865b1ff 100644
--- a/h2/src/docsrc/html/advanced.html
+++ b/h2/src/docsrc/html/advanced.html
@@ -1,6 +1,6 @@
@@ -453,14 +453,17 @@ Keywords / Reserved Words
-| Keyword |
-H2 |
-SQL:2016 |
-SQL:2011 |
-SQL:2008 |
-SQL:2003 |
-SQL:1999 |
-SQL-92 |
+Keyword |
+H2 |
+SQL Standard |
+
+
+| 2016 |
+2011 |
+2008 |
+2003 |
+1999 |
+92 |
@@ -554,8 +557,6 @@ Keywords / Reserved Words
+ | + | + | + | + | + | + |
| INTERSECT |
+ | + | + | + | + | + | + |
-| INTERSECTS |
-+ | | | | | | |
| INTERVAL |
+ | + | + | + | + | + | + |
| IS |
@@ -571,13 +572,13 @@ Keywords / Reserved Words
| LIKE |
+ | + | + | + | + | + | + |
| LIMIT |
-+ | | | | | + | |
+MS | | | | | + | |
| LOCALTIME |
+ | + | + | + | + | + | |
| LOCALTIMESTAMP |
+ | + | + | + | + | + | |
| MINUS |
-+ | | | | | | |
+MS | | | | | | |
| MINUTE |
+ | + | + | + | + | + | + |
| MONTH |
@@ -635,13 +636,13 @@ Keywords / Reserved Words
| TO |
+ | + | + | + | + | + | + |
| TOP |
-CS | | | | | | |
+MS CS | | | | | | |
| TRAILING |
CS | + | + | + | + | + | + |
| TRUE |
+ | + | + | + | + | + | + |
| UESCAPE |
-+ | | | + | + | + | + |
++ | + | + | + | + | | |
| UNION |
+ | + | + | + | + | + | + |
| UNIQUE |
@@ -671,15 +672,30 @@ Keywords / Reserved Words
-Some keywords in H2 are context-sensitive (CS), such keywords may be used as identifiers in some places,
+Mode-sensitive keywords (MS) are keywords only in some compatibility modes.
+
+- LIMIT is a keywords only in Regular, Legacy, DB2, HSQLDB, MariaDB, MySQL, and PostgreSQL compatibility modes.
+It is an identifier in Strict, Derby, MSSQLServer, and Oracle compatibility modes.
+
- MINUS is a keyword only in Regular, Legacy, DB2, HSQLDB, and Oracle compatibility modes.
+It is an identifier in Strict, Derby, MSSQLServer, MariaDB, MySQL, and PostgreSQL compatibility modes.
+
- TOP is a context-sensitive keyword (can be either keyword or identifier)
+only in Regular, Legacy, HSQLDB, and MSSQLServer compatibility modes.
+It is an identifier unconditionally in Strict, Derby, DB2, MariaDB, MySQL, Oracle, and PostgreSQL compatibility modes.
+
+
+Context-sensitive keywords (CS) can be used as identifiers in some places,
but cannot be used as identifiers in others.
+Normal keywords (+) are always treated as keywords.
+
+
Most keywords in H2 are also reserved (+) or non-reserved (NR) words in the SQL Standard.
Newer versions of H2 may have more keywords than older ones.
+Reserved words from the SQL Standard are potential candidates for keywords in future versions.
There is a compatibility setting
SET NON_KEYWORDS
-that can be used as a temporary workaround for applications that use keywords as unquoted identifiers.
.
+that can be used as a temporary workaround for applications that use keywords as unquoted identifiers.
Standards Compliance
@@ -1354,9 +1370,10 @@
Protection against Remote Access
If you enable remote access using -webAllowOthers,
please ensure the web server can only be accessed from trusted networks.
+If this option is specified, -webExternalNames should be also specified with
+comma-separated list of external names or addresses of this server.
The options -baseDir don't protect
-access to the tools section, prevent remote shutdown of the web server,
-changes to the preferences, the saved connection settings,
+access to the saved connection settings,
or access to other databases accessible from the system.
diff --git a/h2/src/docsrc/html/architecture.html b/h2/src/docsrc/html/architecture.html
index a7603e81c3..af4ccdca18 100644
--- a/h2/src/docsrc/html/architecture.html
+++ b/h2/src/docsrc/html/architecture.html
@@ -1,6 +1,6 @@
@@ -50,6 +50,7 @@ Introduction
Top-down Overview
Working from the top down, the layers look like this:
+
- JDBC driver.
- Connection/session management.
- SQL Parser.
@@ -59,7 +60,6 @@
Top-down Overview
- B-tree engine and page-based storage allocation.
- Filesystem abstraction.
-
JDBC Driver
@@ -69,6 +69,7 @@
JDBC Driver
Connection/session management
The primary classes of interest are:
+
| Package | Description |
| org.h2.engine.Database | the root/global class |
@@ -79,7 +80,6 @@ Connection/session management
| org.h2.engine.SessionRemote |
remote session |
-
Parser
@@ -95,14 +95,15 @@
Command execution and planning
Unlike other databases, we do not have an intermediate step where we generate some kind of IR (intermediate representation) of the query.
The parser class directly generates a command execution object.
Then we run some optimisation steps over the command to possibly generate a more efficient command.
-
+
+
The primary packages of interest are:
+
| Package | Description |
| org.h2.command.ddl | Commands that modify schema data structures |
| org.h2.command.dml | Commands that modify data |
-
Table/Index/Constraints
@@ -110,12 +111,12 @@
Table/Index/Constraints
The primary packages of interest are:
+
| Package | Description |
| org.h2.table | Implementations of different kinds of tables |
| org.h2.index | Implementations of different kinds of indices |
-
Undo log, redo log, and transactions layer
diff --git a/h2/src/docsrc/html/build.html b/h2/src/docsrc/html/build.html
index b09c398506..87a588d72b 100644
--- a/h2/src/docsrc/html/build.html
+++ b/h2/src/docsrc/html/build.html
@@ -1,6 +1,6 @@
diff --git a/h2/src/docsrc/html/changelog.html b/h2/src/docsrc/html/changelog.html
index 32fb19a0a2..23c1e63e38 100644
--- a/h2/src/docsrc/html/changelog.html
+++ b/h2/src/docsrc/html/changelog.html
@@ -1,6 +1,6 @@
@@ -25,6 +25,72 @@
Next Version (unreleased)
+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
@@ -1182,64 +1248,4 @@
Version 1.4.200 (2019-10-14)
-Version 1.4.199 (2019-03-13)
-
-- PR #1807: Reduce code duplication and remove h2.mixedGeometries
-
-- PR #1806: Improve SELECT FOR UPDATE documentation
-
-- PR #1804: Lift limit of 10 characters on enum value (1.4.198 regression)
-
-- PR #1803: Do not rely on index sorting in SELECT FOR UPDATE
-
-- Issue #1800: Remove experimental status from window functions
-
-- PR #1799: Fire triggers after row locking and remove some leftovers
-
-- PR #1798: Reuse some string builders, remove StatementBuilder and other minor changes
-
-- Issue #1795: 1.4.198 regression with batch updates and transactions
-
-- PR #1794: Ask password in Shell in secure way and improve database creation information in tutorial
-
-- PR #1791: Move commands to commands.html and other changes
-
-- Issue #1774: H2 Browser configuration is unclear and fails on KUbuntu
-
-- PR #1790: Do not convert standard TRIM function to non-standard functions
-
-- Issue #1787: Non-standard MERGE throws LOCK_TIMEOUT_1 on violation of some constraints
-
-- PR #1784: improve database not found error
-
-- Issue #1740: Enhancement Request: h2 server: do not swallow exceptions
-
-- Issue #1616: Metadata and scripts should be persisted with unconditionally quoted identifiers
-
-- PR #1779: Improve isSimpleIdentifier() and enquoteIdentifier()
-
-- PR #1776: Improve DATABASE_TO_LOWER handling
-
-- Issue #1771: NPE in Comparison.createIndexConditions
-
-- PR #1772: Fix newlines in test scripts
-
-- Issue #1762: NullPointerException in Parser. Introduced in 1.4.198
-
-- PR #1768: Add more context-sensitive keywords
-
-- Issue #1758: sequence restart issue with 1.4.198
-
-- Issue #1759: SELECT … FOR UPDATE returns old data in 1.4.198
-
-- PR #1756: Fix DISTINCT ON in presence of ORDER BY
-
-- PR #1754: Fix window functions in JOIN with ON condition
-
-- Issue #1751: making it easier to open console and create local databases
-
-- Issue #1750: JOIN t ON t.col IN (SELECT ...) throws AssertionError
-
-
-