/
changelog.html
1303 lines (1295 loc) · 46.9 KB
/
changelog.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
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
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>
Change Log
</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<!-- [search] { -->
<script type="text/javascript" src="navigation.js"></script>
</head><body onload="frameMe();">
<table class="content"><tr class="content"><td class="content"><div class="contentDiv">
<!-- } -->
<h1>Change Log</h1>
<h2>Next Version (unreleased)</h2>
<ul>
<li>Issue #3376: Data cannot be read after insert of clob data > MAX_LENGTH_INPLACE_LOB with data change delta table
</li>
<li>PR #3377: Add -webExternalNames setting and fix WebServer.getConnection()
</li>
<li>PR #3367: Use faster checks of dimension systems of geometries
</li>
<li>PR #3369: Added v2 changes in migration docs
</li>
<li>Issue #3361: MemoryEstimator.estimateMemory() can return negative size
</li>
<li>PR #3362: Use BufferedReader instead of BufferedInputStream to avoid Illegal seek exception
</li>
<li>Issue #3353: Wrong rownum() scope for DML with change delta table
</li>
<li>PR #3352: make Javadoc happier
</li>
<li>Issue #3344: Changelog could link to github issue
</li>
<li>Issue #3340: JDBC index type seems wrong
</li>
<li>Issue #3336: FT_INIT error when mode=MySQL
</li>
<li>Issue #3334: Regression with CREATE ALIAS - Parameter "#2" is not set
</li>
<li>Issue #3321: Insert Primary Key after import CSV Data does not work
</li>
<li>PR #3323: Tokenize SQL before parsing and preserve tokens for recompilation
</li>
<li>PR #3320: Add Servlet 5-compatible servlet for H2 Console
</li>
<li>Issue #918: Parser fails recognising set operations in correlated subqueries
</li>
<li>Issue #2050: PostgreSQL with recursive fail with union in the final query
</li>
<li>PR #3316: Update copyright years
</li>
<li>PR #3315: Never put read locks into lockSharedSessions and other minor changes
</li>
<li>Issue #492: H2 does not correctly parse <parenthesized joined table>
</li>
<li>Issue #3311: Parser creates wrong join graph in some cases and uses wrong tables for column mapping
</li>
<li>FORCE_JOIN_ORDER setting is removed
</li>
<li>Issue #1983: Official build script is not compatible with Java 13
</li>
<li>PR #3305: Add UNIQUE(VALUE) and remove some non-standard keywords
</li>
<li>PR #3299: Remove useless StringBuilder.toString() call
</li>
<li>PR #3298: Delete unused sqlTypes array
</li>
</ul>
<h2>Version 2.0.206 (2022-01-04)</h2>
<ul>
<li>Issue #3322: Create linked table fails when the table contains a Geometry with a data type specified
</li>
<li>Issue #3297: Unexpected GROUP BY results with indexed IGNORECASE column
</li>
</ul>
<h2>Version 2.0.204 (2021-12-21)</h2>
<ul>
<li>Issue #3291: Add Legacy and Strict modes
</li>
<li>Issue #3287: SELECT statement works on 1.4.200 but fails on 2.0.202 with "Column XYZ must be in the GROUP BY list"
</li>
<li>PR #3284: Remove unused UNDO_LOG setting
</li>
<li>Issue #3251: Table with GEOMETRY column can't have a TriggerAdapter-based trigger any more
</li>
<li>PR #3281: DateTimeFormatter-based FORMATDATETIME and PARSEDATETIME and other changes
</li>
<li>Issue #3246: Spatial predicates with comparison are broken in MySQL compatibility mode
</li>
<li>Issue #3270: org.h2.jdbc.JdbcSQLFeatureNotSupportedException: Feature not supported: "Unsafe comparison or cast"
</li>
<li>Issue #3268 / PR #3275: Add TO_DATE and TO_TIMESTAMP to PostgreSQL compatibility mode
</li>
<li>PR #3274: Remove some dead code and unused params
</li>
<li>Issue #3266: Oracle compatibility NUMBER without precision and scale should have variable scale
</li>
<li>Issue #3263: Unable to store BigDecimal with negative scale in NUMERIC(19,6) column
</li>
<li>PR #3261: Small optimization for MIN and MAX
</li>
<li>Issue #3258 / PR #3259: Prevent incorrect optimization of COUNT(*) and other changes
</li>
<li>PR #3255: Throw proper exception when type of argument isn't known
</li>
<li>Issue #3249: Multi-column assignment with subquery throws exception when subquery doesn't return any rows
</li>
<li>PR #3248: Remove redundant uniqueness check, correct version in pom
</li>
<li>PR #3247: Avoid AIOBE exception in TestCrashAPI and in Transaction
</li>
<li>Issue #3241: ResultSetMetaData::getColumnTypeName should produce the correct ARRAY type
</li>
<li>Issue #3204: H2 Tools Web Console: Unicode 32
</li>
<li>Issue #3227: Regression when referencing outer joined column from correlated subquery
</li>
<li>Issue #3237: Can no longer cast CHAR(n) to BOOLEAN with n > 1
</li>
<li>Issue #3235: Regression in IN predicate with empty in list
</li>
<li>Issue #3236: NullPointerException in DatabaseMetaData::getIndexInfo when querying the info for views
</li>
<li>Issue #3233: General error when using NULL predicate on _ROWID_ column
</li>
<li>Issue #3223: TRUNC(v, p) with negative precisions no longer works
</li>
<li>Issue #3221: NullPointerException when creating domain
</li>
<li>Issue #3186: ResultSetMetaData.getSchemaName() returns empty string for aliased columns
</li>
</ul>
<h2>Version 2.0.202 (2021-11-25)</h2>
<ul>
<li>Issue #3206: CVE Vulnerability CVE-2018-14335
</li>
<li>Issue #3174: Add keyword AUTOCOMMIT on create linked table to control the commit mode
</li>
<li>Issue #3130: Precision of NUMERIC values isn't verified in the Oracle compatibility mode
</li>
<li>Issue #3122: Documentation: Syntax diagram for RENAME CONSTRAINT incorrect
</li>
<li>PR #3129: remove LOB compression
</li>
<li>PR #3127: Cleanups post PageStore removal
</li>
<li>PR #3126: Change nested classes to static nested classes where possible
</li>
<li>PR #3125: Strongly typed LobStorageMap
</li>
<li>PR #3124: Remove PageStore engine
</li>
<li>Issue #3118: SHUTDOWN COMPACT causes 2PC to corrupt database in a simulated crash
</li>
<li>Issue #3115: Infinite loop then OOM in org.h2.mvstore.tx.Transaction.waitFor() when deadlock occurs
</li>
<li>Issue #3113: Data lost when 2 threads read/write TransactionStore and close it normally even if MVStore autoCommit
disabled
</li>
<li>PR #3110: Fix possible int overflow and minor doc change
</li>
<li>Issue #3036: A database that contains BLOBs might grow without being able to be compacted
</li>
<li>Issue #3097: Possible MVStore compaction issue
</li>
<li>PR #3096: Add separate LOB data layer for values
</li>
<li>Issue #3093: ROWNUM filter doesn't work with more than one table
</li>
<li>PR #3087: Add "CONVERT TO CHARACTER SET" to compatibility modes
</li>
<li>Issue #3080: Complex Query returns different results depending on the number of arguments in the IN clause
</li>
<li>Issue #3066: Very high DB opening/closing times
</li>
<li>PR #3077: Add CREATE UNIQUE INDEX ... INCLUDE
</li>
<li>Issue #3061 / PR #3074: GROUP BY using column index for MySQL/MariaDB/PostgreSQL compatibility modes
</li>
<li>PR #3067: Restrict identity data types and result limitation clauses to compatibility modes
</li>
<li>PR #3065: Remove duplicate method IOUtils.getBufferedReader
</li>
<li>Issue #3055: Phantom table leftover after INSERT .. WITH
</li>
<li>PR #3062: Add ALTER DOMAIN RENAME CONSTRAINT command
</li>
<li>Issue #3059: ALTER TABLE DROP CONSTRAINT doesn't check owner of constraint
</li>
<li>Issue #3054: Add binary set aggregate functions
</li>
<li>Issue #3049: Java value getters of ValueNull should throw exceptions
</li>
<li>Issue #3046: SYSTEM_RANGE can't handle bind variable as step size and produces wrong error message
</li>
<li>Issue #3033: NPE during BLOB read after 2PC rollback
</li>
<li>PR #3034: Don't evaluate ValueTimestampTimeZone at begin and end of each command
</li>
<li>PR #3029: Optimize row storage in MVStore and other changes
</li>
<li>PR #3028: Remove back compatibility
</li>
<li>PR #3025: Switch from Travis CI to GitHub Workflows
</li>
<li>PR #3024: Add initial version of upgrade utility
</li>
<li>Issue #3017: ROUND() does not set correct precision and scale of result
</li>
<li>Issue #3003: CREATE TABLE ... AS SELECT ... FROM creates invalid column definition when aggregate functions are used
</li>
<li>Issue #3008: TestCrashAPI: Exception in Arrays.sort() called by LocalResult.done()
</li>
<li>Issue #3006 / PR #3007: Unlock meta during query execution in CREATE TABLE AS query
</li>
<li>PR #3001: PostgreSQL compatibility: UPDATE with FROM
</li>
<li>PR #2998: Fix off-by-one error with -webAdminPassword in Server
</li>
<li>PR #2995: Add FETCH_SIZE clause to CREATE LINKED TABLE
</li>
<li>Issue #2907 / PR #2994: Prevent "Chunk not found" on LOB operations
</li>
<li>PR #2993: Update copyright years
</li>
<li>Issue #2991: TestCrashAPI: NPE in ScriptCommand.dumpDomains()
</li>
<li>Issue #2950 / PR #2987: Issue commit() right before "non-transactional" DDL command starts
</li>
<li>PR #2980: Assorted minor changes
</li>
<li>PR #2966: H2 2.0.201: Linked Tables freeze the Database and freeze the Server Process
</li>
<li>Issue #2972: Memory leak due to negative Page memory in the MVStore
</li>
<li>PR #2971: create skeleton of migration to V2 document
</li>
<li>Issue #2967: MVStore: averageSize int overflow in the class ObjectDataType
</li>
<li>Issue #2963: Syntax error for large hexadecimal constants with DATABASE_TO_UPPER=false
</li>
<li>Issue #2961: Accept CREATE PRIMARY KEY only in metadata or in quirks mode
</li>
<li>Issue #2960: Reject invalid CREATE { UNIQUE | HASH } SPATIAL INDEX
</li>
<li>Issue #2958: TableLink is broken for Oracle database after pull request #2903
</li>
<li>PR #2955: Prevent incorrect index sorting
</li>
<li>PR #2951: Add documentation for INFORMATION_SCHEMA
</li>
<li>PR #2943: some small prep for next release
</li>
<li>PR #2948: Add support of Infinity, -Infinity, and NaN to DECFLOAT data type
</li>
<li>Issue #2947: Encoding of Unicode and special characters in error messages
</li>
<li>Issue #2891: Fix import of unnamed referential constraints from SQL scripts generated by older versions of H2
</li>
<li>Issue #2812: Unexpected result for query that compares an integer with a string
</li>
<li>Issue #2936: Add data type conversion code from datetime and UUID values to JSON
</li>
<li>Issue #2935: ENUM ARRAY isn't read properly from persisted data
</li>
<li>Issue #2923: Combination of fileName() with fileStore() should throw an exception
</li>
<li>Issue #2928: JSON_ARRAYAGG and all NULL values
</li>
<li>PR #2918: Removal of unnecessary lock
</li>
<li>Issue #2911: org.h2.mvstore.MVStoreException: Transaction was illegally transitioned from ROLLING_BACK to
ROLLED_BACK
</li>
<li>Issue #1022: JdbcDatabaseMetaData.getPseudoColumns() should be implemented
</li>
<li>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
</li>
<li>PR #2903: Assorted changes
</li>
<li>Issue #2901: PgServer returns less rows when fetchSize is set
</li>
<li>Issue #2894: NPE in DROP SCHEMA when unique constraint is removed before linked referential constraint
</li>
<li>Issue #2888: H2 should pass time zone of client to the server
</li>
<li>PR #2890: Fixed possible eternal wait(0)
</li>
<li>Issue #2846: GRANT SELECT, INSERT, UPDATE, DELETE incorrectly gives privileges to drop a table
</li>
<li>Issue #2882: NPE in UPDATE with SELECT UNION
</li>
<li>PR #2881: Store users and roles together and user-defined functions and aggregates together
</li>
<li>Issue #2878: Disallow spatial indexes in PageStore databases
</li>
<li>PR #2874: Use 64-bit row counts in results and other changes
</li>
<li>Issue #2866: New INFORMATION_SCHEMA should not use keywords as column names
</li>
<li>Issue #2867: PageStore + Lazy + INSERT ... SELECT cause infinite loop
</li>
<li>PR #2869: Normalize binary geometry literals and improve EWKB representation of POLYGON EMPTY
</li>
<li>Issue #2860: CHAR columns in PgCatalogTable have incorrect length
</li>
<li>Issue #2848: Add support for standard <listagg overflow clause>
</li>
<li>Issue #2858: Throw 22001 on attempt to use getString() or getBytes() on LOB object longer than 1,048,576
chars/octets
</li>
<li>Issue #2854: Define limits for identifiers, number of columns, etc.
</li>
<li>PR #2853: Small optimization for Page compression / decompression
</li>
<li>Issue #2832: Define length limits for non-LOB data types
</li>
<li>Issue #2842: Querying view that uses LTRIM/RTRIM results in a syntax error
</li>
<li>Issue #2841: Call to STRINGDECODE results in StringIndexOutOfBoundsException
</li>
<li>Issue #2839: Querying a view that uses the POSITION() function results in an unexpected syntax error
</li>
<li>Issue #2838: INSERT() with NULL arguments for the original string and string to be added results in NPE
</li>
<li>Issue #2837: ROUND() function should reject invalid number of digits immediately
</li>
<li>Issue #2835: Calling math functions with a string argument results in a NullPointerException
</li>
<li>Issue #2833: MERGE INTO causes an unexpected syntax error
</li>
<li>Issue #2831: Restore YEAR data type for MySQL compatibility mode
</li>
<li>Issue #2822: Suspicious logic in Database.closeImpl()
</li>
<li>Issue #2829: Incorrect manifest entries in sources jar
</li>
<li>Issue #2828: Parser can't parse NOT in simple when operand
</li>
<li>Issue #2826: Table with a generated column cycle results in a NullPointerException
</li>
<li>Issue #2825: Query with % operator results in a ClassCastException
</li>
<li>Issue #2818: TableFilter.getValue() can read value of delegated column faster
</li>
<li>Issue #2816: Query on view that uses the BETWEEN operator results in an unexpected syntax error
</li>
<li>PR #2815: Remove BINARY_COLLATION and UUID_COLLATION settings
</li>
<li>Issue #2813: Query with CASE operator unexpectedly results in "Column must be in the GROUP BY list" error
</li>
<li>Issue #2811: Update build numbers and data format versions
</li>
<li>Issue #2674: OPTIMIZE_IN_SELECT shouldn't convert value to incompatible data types
</li>
<li>Issue #2803: Disallow comparison operations between incomparable data types
</li>
<li>Issue #2561: Separate normal functions and table value functions
</li>
<li>Issue #2804: NPE in ConditionNot.getNotIfPossible()
</li>
<li>Issue #2801: Instances of TableView objects leaking
</li>
<li>PR #2799: Additional bit functions BITNAND, BITNOR, BITXNOR, BITCOUNT, ULSHIFT, URSHIFT, ROTATELEFT, ROTATERIGHT,
BIT_NAND_AGG, BIT_NOR_AGG, and BIT_XNOR_AGG.
</li>
<li>PR #2798: Complete separation of Function class
</li>
<li>Issue #2795: Sporadic issues with trigger during concurrent insert in 1.4.199/1.4.200
</li>
<li>PR #2796: Assorted refactorings
</li>
<li>Issue #2786: Failure in CREATE TABLE AS leaves inconsistent transaction if some rows were successfully inserted
</li>
<li>Issue #2790: Examples in documentation of CREATE ALIAS should use standard literals only
</li>
<li>Issue #2787: CONCAT and CONCAT_WS functions
</li>
<li>PR #2784: Oracle REGEXP_REPLACE support
</li>
<li>Issue #2780: Remove SCOPE_GENERATED_KEYS setting
</li>
<li>PR #2779: Fix incorrect FK restrictions and other changes
</li>
<li>PR #2778: Assorted changes
</li>
<li>Issue #2776: Referential constraint can create a unique constraint in the wrong schema
</li>
<li>Issue #2771: Add documented DEFAULT ON NULL flag for all types of columns
</li>
<li>Issue #2742 / PR #2768: Better separation of MVStore aimed at smaller h2-mvstore jar
</li>
<li>Issue #2764: Identity columns don't accept large numbers
</li>
<li>IDENTITY() function is removed, SCOPE_IDENTITY() is now available only in MSSQLServer compatibility mode.
</li>
<li>Issue #2757: Intermittent TestFileSystem failures
</li>
<li>Issue #2758: Issues with sequences
</li>
<li>PR #2756: Prevent DROP NOT NULL for identity columns
</li>
<li>Issue #2753: UPDATE statement changes value of GENERATED ALWAYS AS IDENTITY columns
</li>
<li>PR #2751: Add comment explaining seemingly dummy operation
</li>
<li>PR #2750: Use RFC 4122 compliant UUID comparison by default
</li>
<li>PR #2748: PgServer set type text to NULL value
</li>
<li>Issue #2746: Old TCP clients with current server
</li>
<li>PR #2745: PgServer can send bool in binary mode
</li>
<li>PR #2744: Remove jarSmall and jarClient targets
</li>
<li>PR #2743: Add IS_TRIGGER_UPDATABLE and other similar fields to INFORMATION_SCHEMA
</li>
<li>PR #2738: Fix VIEWS.VIEW_DEFINITION and support it for other databases in H2 Console
</li>
<li>PR #2737: Assorted changes
</li>
<li>PR #2734: Update dependencies and fix ResultSetMetaData.isSigned()
</li>
<li>PR #2733: Replace h2.sortNullsHigh with DEFAULT_NULL_ORDERING setting
</li>
<li>PR #2731: Fix spelling errors in German translation
</li>
<li>PR #2728: Add and use DATA_TYPE_SQL() function and remove INFORMATION_SCHEMA.PARAMETERS.REMARKS
</li>
<li>Issue #1015: ENUM and arithmetic operators
</li>
<li>Issue #2711: Store normalized names of data types in metadata
</li>
<li>PR #2722: Implement getRowCount() for some INFORMATION_SCHEMA tables
</li>
<li>PR #2721: Improve LOCKS, SESSIONS, and USERS and optimize COUNT(*) on other isolation levels in some cases
</li>
<li>Issue #2655: TestCrashAPI: AssertionError at MVPrimaryIndex.<init>
</li>
<li>Issue #2716: Fix URL of Maven repository
</li>
<li>Issue #2715: Mention `DB_CLOSE_DELAY=-1` flag in JDBC URL on the "Cheat Sheet" page
</li>
<li>PR #2714: fixed few code smells discovered by PVS-Studio
</li>
<li>Issue #2712: `NOT LIKE` to a sub-query doesn't work
</li>
<li>PR #2710: PgServer: set oid and attnum in RowDescription
</li>
<li>Issue #2254: Add standard DECFLOAT data type
</li>
<li>PR #2708: Add declared data type attributes to the INFORMATION_SCHEMA
</li>
<li>Issue #2706: Empty comments / remarks on objects
</li>
<li>PR #2705: Return standard-compliant DATA_TYPE for strings
</li>
<li>PR #2703: Fix case-insensitive comparison issues with national characters
</li>
<li>Issue #2701: Subquery with FETCH should not accept global conditions
</li>
<li>Issue #2699: Remove FUNCTIONS_IN_SCHEMA setting
</li>
<li>Issue #452: Add possibility to use user-defined aggregate functions with schema
</li>
<li>PR #2695: Refactor handling of parentheses in getSQL() methods
</li>
<li>PR #2693: disallow VARCHAR_IGNORECASE in PostgreSQL mode
</li>
<li>Issue #2407: Implement CHAR whitespace handling correctly
</li>
<li>PR #2685: Check existing data in ALTER DOMAIN ADD CONSTRAINT
</li>
<li>PR #2683: Fix data types in Transfer
</li>
<li>PR #2681: Report user functions in standard ROUTINES and PARAMETERS views
</li>
<li>PR #2680: Reimplement remaining DatabaseMetaData methods and fix precision of binary numeric types
</li>
<li>PR #2679: Reimplement getTables(), getTableTypes(), and getColumns()
</li>
<li>PR #2678: Reimplement getPrimaryKeys(), getBestRowIdentifier(), getIndexInfo() and others
</li>
<li>PR #2675: Reimplement getImportedKeys(), getExportedKeys(), and getCrossReferences()
</li>
<li>PR #2673: Reimplement some metadata methods
</li>
<li>PR #2672: Forward DatabaseMetaData calls to server
</li>
<li>Issue #2329: Content of INFORMATION_SCHEMA should be listed as VIEWS
</li>
<li>PR #2668: Sequence generator data type option and length parameter for JSON data type
</li>
<li>PR #2666: Add ALTER DOMAIN RENAME command
</li>
<li>PR #2663: Add ALTER DOMAIN { SET | DROP } { DEFAULT | ON UPDATE }
</li>
<li>PR #2661: Don't allow construction of incomplete ARRAY and ROW data types
</li>
<li>Issue #2659: NULLIF with row values
</li>
<li>PR #2658: Extract date-time and some other groups of functions into own classes
</li>
<li>PR #2656: add `_int2` and `_int4` for PgServer
</li>
<li>PR #2654: Move out JSON, cardinality, ABS, MOD, FLOOR, and CEIL functions from the Function class
</li>
<li>PR #2653: Use full TypeInfo for conversions between PG and H2 data types
</li>
<li>PR #2652: Add "SHOW ALL"
</li>
<li>PR #2651: add `pg_type.typelem` and `pg_type.typdelim`
</li>
<li>PR #2649: Extract some groups of functions from Function class
</li>
<li>PR #2646: Add some PostgreSQL compatibility features
</li>
<li>PR #2645: Add CURRENT_PATH, CURRENT_ROLE, SESSION_USER, and SYSTEM_USER
</li>
<li>Issue #2643: Send PG_TYPE_TEXTARRAY values to ODBC drivers properly
</li>
<li>PR #2642: Throw proper exceptions from array element reference and TRIM_ARRAY
</li>
<li>PR #2640: German translations
</li>
<li>Issue #2108: Add possible candidates in different case to table not found exception
</li>
<li>Issue #2633: Multi-column UPDATE assignment needs to be reimplemented
</li>
<li>PR #2635: Implement REGEXP_SUBSTR function
</li>
<li>PR #2632: Improve ROW data type
</li>
<li>PR #2630: fix: quoted VALUE in documentation
</li>
<li>Issue #2628: Cached SQL throws JdbcSQLSyntaxErrorException if executed with different parameter values than before
</li>
<li>Issue #2611: Add quantified distinct predicate
</li>
<li>Issue #2620: LOBs in triggers
</li>
<li>PR #2619: ARRAY_MAX_CARDINALITY and TRIM_ARRAY functions
</li>
<li>PR #2617: Add Feature F262: Extended CASE expression
</li>
<li>PR #2615: Add feature T461: Symmetric BETWEEN predicate
</li>
<li>PR #2614: Fix support of multi-dimensional arrays in Java functions
</li>
<li>Issue #2608: Improve concatenation operation for multiple operands
</li>
<li>PR #2605: Assorted minor changes
</li>
<li>Issue #2602: H2 doesn't allow to create trigger from Java source code if there are nested classes
</li>
<li>PR #2601: Add field SLEEP_SINCE to INFORMATION_SCHEMA.SESSIONS table
</li>
<li>Issue #1973: Standard MERGE statement doesn't work with views
</li>
<li>Issue #2552: MERGE statement should process each row only once
</li>
<li>Issue #2548: Wrong update count when MERGE statement visits matched rows more than once
</li>
<li>Issue #2394: H2 does not accept DCL after source merge table
</li>
<li>Issue #2196: Standard MERGE statement doesn't release the source view
</li>
<li>Issue #2567: ARRAY-returning Java functions don't return the proper data type
</li>
<li>Issue #2584: Regression in NULL handling in multiple AND or OR conditions
</li>
<li>PR #2577: PgServer: `array_to_string()` and `set join_collapse_limit`
</li>
<li>PR #2568: Add BIT_XOR_AGG aggregate function
</li>
<li>PR #2565: Assorted minor changes
</li>
<li>PR #2563: defrag is not contributing much, remove from test run
</li>
<li>PR #2562: new exception MVStoreException
</li>
<li>PR #2557: don't throw IllegalStateException in checkOpen
</li>
<li>PR #2554: Reenable mvstore TestCrashAPI
</li>
<li>Issue #2556: TestOutOfMemory: Table "STUFF" not found
</li>
<li>PR #2555: Move current datetime value functions into own class
</li>
<li>PR #2547: split up the ValueLob classes
</li>
<li>PR #2542: Pipelining mvstore chunk creation / save
</li>
<li>Issue #2550: NullPointerException with MERGE containing unknown column in AND condition of WHEN
</li>
<li>Issue #2546: Disallow empty CASE specifications and END CASE
</li>
<li>Issue #2530: Long query with many AND expressions causes StackOverflowError
</li>
<li>PR #2543: Improve case specification support and fix some issues with it
</li>
<li>Issue #2539: Replace non-standard functions with standard code directly in Parser
</li>
<li>Issue #2521: Disallow untyped arrays
</li>
<li>Issue #2532: Duplicate column names in derived table should be acceptable in the presence of a derived column list
that removes ambiguities
</li>
<li>PR #2527: Feature: allow @ meta commands from Console
</li>
<li>PR #2526: Reduce I/O during database presence check and restrict some compatibility settings to their modes
</li>
<li>PR #2525: Restore support of third-party drivers in the Shell tool
</li>
<li>Issue #1710: getHigherType() returns incorrect type for some arguments
</li>
<li>PR #2516: SHUTDOWN IMMEDIATELY should be a normal shut down
</li>
<li>PR #2515: Fix nested comments in ScriptReader
</li>
<li>Issue #2511: Restrict Oracle compatibility functions to Oracle compatibility mode
</li>
<li>PR #2508: Minor refactoring around Tx isolation level
</li>
<li>PR #2505: Assorted changes in DATEADD, DATEDIFF, DATE_TRUNC, and EXTRACT
</li>
<li>Issue #2502: Combination of DML with data change delta table skips subsequent update
</li>
<li>PR #2499: Performance fix for PageStore under concurrent load
</li>
<li>PR #2498: Add some PostgreSQL compatibility features mentioned in issue #2450
</li>
<li>Issue #2496: Error when using empty JSON_OBJECT() or JSON_ARRAY() functions
</li>
<li>PR #2495: Fix JSON_OBJECT grammar in documentation
</li>
<li>Issue #2493 / PR #2494: Replace ColumnNamer with mode-specific generation of column names for views
</li>
<li>PR #2492: Assorted changes in parser, keywords, and ILIKE condition
</li>
<li>PR #2490: Replace pg_catalog.sql with PgCatalogTable and use DATABASE_TO_LOWER in PG Server
</li>
<li>Issue #2488 / PR #2489: Mark version functions as not deterministic
</li>
<li>Issue #2481: Convert TO to keyword
</li>
<li>PR #2476: Add some PostgreSQL compatibility features mentioned in issue #2450
</li>
<li>PR #2479: Recognize absolute path on Windows without drive letter
</li>
<li>Issue #2475: Select order by clause is exported with non-portable SQL
</li>
<li>Issue #2472: Updating column to empty string in Oracle mode with prepared statement does not result in null
</li>
<li>PR #2468: MVStore scalability improvements
</li>
<li>PR #2466: Add partial support for MySQL COLLATE and CHARACTER statements
</li>
<li>Issue #2464: `client_encoding='utf-8'` (single quoted) from `node-postgres` not recognized
</li>
<li>Issue #2461: Support for binary_float and binary_double type aliases
</li>
<li>Issue #2460: Exception when accessing empty arrays
</li>
<li>Issue #2318: Remove incorrect rows from DatabaseMetaData.getTypeInfo() and INFORMATION_SCHEMA.TYPE_INFO
</li>
<li>Issue #2455: `bytea` column incorrectly read by `psycopg2`
</li>
<li>PR #2456: Add standard array value constructor by query
</li>
<li>PR #2451: Add some PostgreSQL compatibility features mentioned in issue #2450
</li>
<li>Issue #2448: Change default data type name from DOUBLE to DOUBLE PRECISION
</li>
<li>PR #2452: Do not use unsafe and unnecessary FROM DUAL internally
</li>
<li>PR #2449: Add support for standard trigraphs
</li>
<li>Issue #2439: StringIndexOutOfBoundsException when using TO_CHAR
</li>
<li>Issue #2444: WHEN NOT MATCHED THEN INSERT should accept only one row
</li>
<li>Issue #2434: Next value expression should return the same value within a processed row
</li>
<li>PR #2437: Assorted changes in MVStore
</li>
<li>Issue #2430: Postgres `bytea` column should be read with and without `forceBinary`
</li>
<li>Issue #2267: BINARY and VARBINARY should be different
</li>
<li>Issue #2266: CHAR and BINARY should have length 1 by default
</li>
<li>PR #2426: Add MD5 and all SHA-1, SHA-2, and SHA-3 digests to the HASH() function
</li>
<li>Issue #2424: 0 should not be accepted as a length of data type
</li>
<li>Issue #2378: JAVA_OBJECT and TableLink
</li>
<li>Issue #2417: Casts between binary strings and non-string data types
</li>
<li>Issue #2416: OTHER and JAVA_OBJECT
</li>
<li>Issue #2379: SQL export can change data type of a constant
</li>
<li>Issue #2411: ArrayIndexOutOfBoundsException when HAVING and duplicate columns in SELECT
</li>
<li>Issue #2194: Add own enumeration of data types to API
</li>
<li>PR #2408: Descending MVMap and TransactionMap cursor
</li>
<li>Issue #2399: Cast to ARRAY with a nested ARRAY does not check the maximum cardinality of the nested ARRAY
</li>
<li>Issue #2402: Remove old ValueLob and DbUpgrade
</li>
<li>Issue #2400: Inconsistent data type conversion between strings and LOBs
</li>
<li>PR #2398: Add expandable flags for SQL generation methods
</li>
<li>PR #2395: Fix for two recent page format bugs
</li>
<li>PR #2386: Chunk occupancy mask
</li>
<li>PR #2385: Memory estimate
</li>
<li>PR #2381: Follow up REPEATABLE_READ-related changes
</li>
<li>PR #2380: use JIRA tracker URLs for JDK bugs
</li>
<li>PR #2376: Fix IN condition with row value expressions in its right side
</li>
<li>Issue #2367 / PR #2370: fix backward compatibility with 1.4.200
</li>
<li>Issue #2371: REPEATABLE READ isolation level does not work in MVStore
</li>
<li>Issue #2363: Soft links in -baseDir and database path cause error 90028
</li>
<li>Issue #2364: TestScript datatypes/timestamp-with-time-zone.sql fails if TZ=Europe/Berlin
</li>
<li>Issue #2359: Complete implementation of generated columns
</li>
<li>PR #2361: Fix unused result
</li>
<li>PR #2353: Push binary search operation from Page to DataType
</li>
<li>Issue #2348: Add USING clause to ALTER COLUMN CHANGE DATA TYPE
</li>
<li>Issue #2350: License Problem in POM
</li>
<li>Issue #2345: Add standard SET TIME ZONE command to set current time zone of the session
</li>
<li>PR #2341: Cleanup file backend sync
</li>
<li>Issue #2343: Domain-based domains: Domain not found after reconnection
</li>
<li>Issue #2338: Domains should not support NULL constraints
</li>
<li>Issue #2334: build target mavenInstallLocal broken since commit 7cbbd55e
</li>
<li>#2335: TestDateTimeUtils fails if system timezone has DST in the future
</li>
<li>Issue #2330: Syntax error with parenthesized expression in GROUP BY clause
</li>
<li>Issue #2256: <interval value expression> with datetime subtraction
</li>
<li>Issue #2325: H2 does not parse nested bracketed comments correctly
</li>
<li>Issue #466: Confusion about INFORMATION_SCHEMA content related to UNIQUE constraints
</li>
<li>PR #2323: Assorted changes
</li>
<li>Issue #2320: Remove SAMPLE_SIZE clause from SELECT
</li>
<li>Issue #2301: Add compatibility setting to accept some keywords as identifiers
</li>
<li>PR #2317: Replace CHECK_COLUMN_USAGE with CONSTRAINT_COLUMN_USAGE and other changes
</li>
<li>Issue #2315: Sequence must remember its original START WITH value
</li>
<li>Issue #2313: DISTINCT does not work in ordered aggregate functions
</li>
<li>PR #2306: Add support for RESTART of sequence without initial value
</li>
<li>Issue #2304: NPE in multiple define commands in one statement after upgrade from H2 4.1.197
</li>
<li>PR #2303: Assorted minor changes
</li>
<li>Issue #2286: Inline check constraints not in INFORMATION_SCHEMA
</li>
<li>PR #2300: Continue generification of MVStore codebase
</li>
<li>PR #2298: add some minimal security documentation
</li>
<li>PR #2292: synchronize fileBase subclasses use of position
</li>
<li>PR #2238: Some MVStore refactoring
</li>
<li>Issue #2288: ConcurrentModificationException during commit
</li>
<li>Issue #2293: Remove TestClearReferences and workarounds for old versions of Apache Tomcat
</li>
<li>Issue #2288: ConcurrentModificationException during commit
</li>
<li>PR #2284: Remove unrelated information from README and add some information about H2
</li>
<li>PR #2282: add PostgreSQL compatible variable STATEMENT_TIMEOUT
</li>
<li>PR #2280: little comment
</li>
<li>Issue #2205: H2 1.4.200 split FS issue
</li>
<li>Issue #2272: UpdatableView and obtaining the Generated Keys
</li>
<li>PR #2276: Split up filesystem classes
</li>
<li>PR #2275: improve detection of JAVA_HOME on Mac OS
</li>
<li>Issue #2268: Numeric division needs better algorithm for scale selection
</li>
<li>Issue #2270: IGNORE_UNKNOWN_SETTINGS is ignored
</li>
<li>PR #2269: Fix existence check of non-persistent databases
</li>
<li>Issue #1910: BinaryOperation should evaluate precision and scale properly
</li>
<li>PR #2264: Clean up redundant parts of file system abstraction
</li>
<li>PR #2262: add setting AUTO_COMPACT_FILL_RATE
</li>
<li>Issue #2255 / PR #2259: Use NIO2 in main sources and build
</li>
<li>PR #2257: Catch java.lang.NoClassDefFoundError
</li>
<li>Issue #2241: Mark H2-specific and compatibility only clauses in documentation
</li>
<li>PR #2246: Update third-party drivers
</li>
<li>Issue #2239 / PR #2236: Add NETWORK_TIMEOUT setting for SO_TIMEOUT
</li>
<li>PR #2235: Don't use RandomAccessFile in FilePathNio
</li>
<li>Issue #2233: "Prepared.getObjectId() was called before" when granting on multiple tables
</li>
<li>PR #2230: Add factory methods for Row
</li>
<li>Issue #2226, PR #2227: Remove support of Apache Ignite
</li>
<li>PR #2224: Update some hyperlinks and use https in them where possible
</li>
<li>PR #2223: Fix data change delta tables in views
</li>
<li>Issue #1943: Deadlock in TestTriggersConstraints
</li>
<li>PR #2219: do not retry failed DDL commands
</li>
<li>PR #2214: Fix TRACE_LEVEL_FILE=4 for in-memory databases
</li>
<li>PR #2216: Add FileChannel.lock in the connection URL summary
</li>
<li>PR #2215: Add white-space: pre to tables with query results
</li>
<li>Issue #2213: NUMERIC scale can be larger than a precision
</li>
<li>PR #2212: Get rid of multi-version CurrentTimestamp and fix negative scale of NUMERIC
</li>
<li>PR #2210: Meta table extras
</li>
<li>PR #2209: Add standard expressions with interval qualifier
</li>
<li>PR #2195: Feature abort_session function
</li>
<li>PR #2201: Add padding to negative years and other changes
</li>
<li>PR #2197: Add some additional methods from JDBC 4.2 and return 4.2 as supported version
</li>
<li>PR #2193: Require Java 8 and remove Java 7 support
</li>
<li>Issue #2191: NPE with H2 v1.4.200 repeatable read select queries
</li>
<li>Issue #1390: Add standard-compliant ARRAY data type syntax
</li>
<li>PR #2186: Refactor Parser.parseColumnWithType() and fix some minor issues with CAST
</li>
<li>Issue #2181: SET EXCLUSIVE quirks
</li>
<li>PR #2173: Move snapshots from Transaction to TransactionMap
</li>
<li>Issue #2175: Regression: NPE in ResultSet#getTime(int)
</li>
<li>Issue #2171: Wrong PostgreSQL compatibility syntax for the creation of indexes
</li>
<li>PR #2169: Clean up some find methods of indexes and fix minor issues with them
</li>
</ul>
<h2>Version 1.4.200 (2019-10-14)</h2>
<ul>
<li>PR #2168: Add non-standard SNAPSHOT isolation level to MVStore databases
</li>
<li>Issue #2165: Problem with secondary index on SERIALIZABLE isolation level
</li>
<li>Issue #2161: Remove undocumented PageStore-only FILE_LOCK=SERIALIZED
</li>
<li>PR #2155: Reduce code duplication
</li>
<li>Issue #1894: Confusing error message when database creation is disallowed
</li>
<li>Issue #2123: Random failures in TestTransactionStore
</li>
<li>Issue #2153: Different behavior in SET LOCK_TIMEOUT after 1.4.197
</li>
<li>Issue #2150: Remove MULTI_THREADED setting and use multi-threaded MVStore and single-threaded PageStore backends
</li>
<li>Issue #216: Support READ UNCOMMITTED isolation level in MVStore mode
</li>
<li>Issue #678: Support REPEATABLE READ isolation level in MVStore mode
</li>
<li>Issue #174: Support SERIALIZABLE isolation level in MVStore mode
</li>
<li>Issue #2144: MVStore: read uncommitted doesn't see committed rows
</li>
<li>Issue #2142: CURRVAL / CURRENT VALUE FOR should return the value for the current session
</li>
<li>Issue #2136: ConstraintCheck concurrency regression
</li>
<li>PR #2137: Don't use SYSTEM_RANGE for SELECT without a FROM
</li>
<li>PR #2134: Assorted fixes and other changes in DateTimeUtils
</li>
<li>PR #2133: Optimize COUNT([ALL] constant) and other changes
</li>
<li>PR #2132: Typo and another bug in MVStore.readStoreHeader()
</li>
<li>Issue #2130: Group-sorted query returns invalid results with duplicate grouped columns in select list
</li>
<li>Issue #2120: Add IF EXISTS clause to column name in ALTER TABLE ALTER COLUMN statement
</li>
<li>Issue #521: Add support for the TIME WITH TIME ZONE data type
</li>
<li>PR #2127: Fix race condition / performance issue during snapshotting
</li>
<li>Issue #2124: MVStore build is broken
</li>
<li>PR #2122: Add support for LMT in time zones and fix large years in datetime values
</li>
<li>Issue #2067: Incorrect chunk space allocation during chunks movement
</li>
<li>PR #2066: Not so happy path - "four alternatives" implementation
</li>
<li>PR #2121: Reduce code duplication for datetime API with custom Calendar instances
</li>
<li>PR #2119: SQL: statement read consistency
</li>
<li>Issue #2116: Empty IN() operator should result in error (MSSQL)
</li>
<li>Issue #2036: CAST from TIME to TIMESTAMP returns incorrect result
</li>
<li>PR #2114: Assorted changes
</li>
<li>PR #2113: Add feature F411: Time zone specification
</li>
<li>PR #2111: CURRENT_CATALOG, SET CATALOG and other changes
</li>
<li>Issue #2109: IW date formatting does not produce proper output
</li>
<li>PR #2104: Fix ordinary grouping set with parentheses and empty grouping set in GROUP BY
</li>
<li>Issue #2103: Add QUOTE_IDENT() function to enquote an identifier in SQL
</li>
<li>Issue #2075: Add EXECUTE IMMEDIATE implementation
</li>
<li>PR #2101: Fix infinite loop in Schema.removeChildrenAndResources()
</li>
<li>Issue #2096: Convert LEFT and RIGHT to keywords and disallow comma before closing parenthesis
</li>
<li>PR #2098: Fix typos
</li>
<li>Issue #1305 / PR #2097: Remove unused and outdated website translation infrastructure
</li>
<li>PR #2093: CURRENT VALUE FOR and other sequence-related changes
</li>
<li>PR #2092: Allow to simulate usage of multiple catalogs by one connection
</li>
<li>PR #2091: Oracle mode now uses DECIMAL with NEXTVAL
</li>
<li>Issue #2088: Division by zero caused by evaluation of global conditions before local conditions
</li>
<li>Issue #2086: TCP_QUICKACK on server socket
</li>