Change Log Next Version (unreleased) - 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 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 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 https://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