diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 0535ccd7dc..2efbcd590e 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -2,29 +2,26 @@ name: CI on: [push, pull_request] +permissions: + contents: read # to fetch code (actions/checkout) + jobs: - java-8: + build: + strategy: + fail-fast: false + matrix: + java-version: [8, 11, 17] + name: Java ${{ matrix.java-version }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 + - uses: actions/checkout@v3 with: - java-version: 1.8 - - name: Test - run: | - cd h2 - echo $JAVA_OPTS - export JAVA_OPTS=-Xmx512m - ./build.sh jar testCI - java-11: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + fetch-depth: 1 + - name: Set up JDK ${{ matrix.java-version }} + uses: actions/setup-java@v3 with: - java-version: 11 + java-version: ${{ matrix.java-version }} + distribution: temurin - name: Test run: | cd h2 diff --git a/.lift.toml b/.lift.toml index 3c7beccf52..95ec44ad80 100644 --- a/.lift.toml +++ b/.lift.toml @@ -5,4 +5,5 @@ # Tell sonatype where our pom file lives, so it can build it again # -build = "maven -f h2/pom.xml compile" \ No newline at end of file +build = "maven -f h2/pom.xml compile" +ignoreRules = [ "missingoverride", "none", "assert_used", "OperatorPrecedence" ] \ No newline at end of file diff --git a/README.md b/README.md index 70de378686..c48d40dc04 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ More information: https://h2database.com com.h2database h2 - 2.1.210 + 2.2.220 ``` diff --git a/h2/MAVEN.md b/h2/MAVEN.md index 427fa8a622..e28cc6b6f1 100644 --- a/h2/MAVEN.md +++ b/h2/MAVEN.md @@ -44,7 +44,8 @@ or ``` Please note that jar generated with Maven is larger than official one and it does not include OSGi attributes. -Use build script with `jar` target instead if you need a compatible jar. +Its configuration for native-image tool is also incomplete. +Use build script with `jar` target instead if you need a jar compatible with official builds. ### Testing diff --git a/h2/build.sh b/h2/build.sh index 558a7945ab..769262d58b 100755 --- a/h2/build.sh +++ b/h2/build.sh @@ -15,4 +15,4 @@ if [ "$1" = "clean" ] ; then rm -rf temp bin ; fi if [ ! -d "temp" ] ; then mkdir temp ; fi if [ ! -d "bin" ] ; then mkdir bin ; fi "$JAVA_HOME/bin/javac" -sourcepath src/tools -d bin src/tools/org/h2/build/*.java -"$JAVA_HOME/bin/java" -Xmx512m -cp "bin:$JAVA_HOME/lib/tools.jar:temp" org.h2.build.Build $@ +"$JAVA_HOME/bin/java" -Xmx1g -cp "bin:$JAVA_HOME/lib/tools.jar:temp" org.h2.build.Build $@ diff --git a/h2/pom.xml b/h2/pom.xml index a0c0085569..5b3c398553 100644 --- a/h2/pom.xml +++ b/h2/pom.xml @@ -4,7 +4,7 @@ com.h2database h2 - 2.1.210 + 2.2.219-SNAPSHOT jar H2 Database Engine https://h2database.com @@ -39,18 +39,32 @@ 1.8 1.8 - 8.0.1 + 9.4 1.17.0 5.6.2 8.5.2 5.0.0 - 42.2.14 + 1.1.0 + 42.4.0 4.0.1 5.0.0 1.7.30 + 15.4 UTF-8 + + + + org.ow2.asm + asm-bom + ${asm.version} + pom + import + + + + @@ -90,9 +104,10 @@ ${osgi.version} - org.osgi - org.osgi.enterprise - ${osgi.version} + org.osgi + org.osgi.service.jdbc + ${osgi.jdbc.version} + provided org.locationtech.jts @@ -124,7 +139,6 @@ org.ow2.asm asm - ${asm.version} test @@ -174,6 +188,20 @@ + + nashorn + + [15,) + + + + org.openjdk.nashorn + nashorn-core + ${nashorn.version} + test + + + diff --git a/h2/src/docsrc/help/information_schema.csv b/h2/src/docsrc/help/information_schema.csv index 8008bb1e46..e6c5d46d9f 100644 --- a/h2/src/docsrc/help/information_schema.csv +++ b/h2/src/docsrc/help/information_schema.csv @@ -1,4 +1,4 @@ -# Copyright 2004-2022 H2 Group. Multiple-Licensed under the MPL 2.0, +# Copyright 2004-2023 H2 Group. Multiple-Licensed under the MPL 2.0, # and the EPL 1.0 (https://h2database.com/html/license.html). # Initial Developer: H2 Group @@ -523,6 +523,13 @@ The name of the field of the row value. The type of the index ('PRIMARY KEY', 'UNIQUE INDEX', 'SPATIAL INDEX', etc.) " +"INDEXES","NULLS_DISTINCT"," +'YES' for unique indexes with distinct null values, +'NO' for unique indexes with not distinct null values, +'ALL' for multi-column unique indexes where only rows with null values in all unique columns are distinct, +NULL for other types of indexes. +" + "INDEXES","IS_GENERATED"," Whether index is generated by a constraint and belongs to it. " @@ -760,11 +767,11 @@ The initial start value. " "SEQUENCES","MINIMUM_VALUE"," -The maximum value. +The minimum value. " "SEQUENCES","MAXIMUM_VALUE"," -The minimum value. +The maximum value. " "SEQUENCES","INCREMENT"," @@ -925,6 +932,13 @@ For regular tables contains the total number of rows including the uncommitted r referencing tables and 'NO' when they are disabled. " +"TABLE_CONSTRAINTS","NULLS_DISTINCT"," +'YES' for unique constraints with distinct null values, +'NO' for unique constraints with not distinct null values, +'ALL' for multi-column unique constraints where only rows with null values in all unique columns are distinct, +NULL for other types of constraints. +" + "TABLE_PRIVILEGES","WITH_HIERARCHY"," 'NO'. " diff --git a/h2/src/docsrc/html/advanced.html b/h2/src/docsrc/html/advanced.html index 68e865b1ff..c03bd89fef 100644 --- a/h2/src/docsrc/html/advanced.html +++ b/h2/src/docsrc/html/advanced.html @@ -1,6 +1,6 @@ @@ -529,8 +529,6 @@

Keywords / Reserved Words

+++++++ FETCH +++++++ -FILTER -CS++++ FOR +++++++ FOREIGN @@ -1813,9 +1811,9 @@

Limits and Limitations

The actual possible number can be smaller if their definitions are too long.
  • The maximum length of an identifier (table name, column name, and so on) is 256 characters.
  • The maximum length of CHARACTER, CHARACTER VARYING and VARCHAR_IGNORECASE values and columns -is 1048576 characters. +is 1_000_000_000 characters.
  • The maximum length of BINARY, BINARY VARYING, JAVA_OBJECT, GEOMETRY, and JSON values and columns -is 1048576 bytes. +is 1_000_000_000 bytes.
  • The maximum precision of NUMERIC and DECFLOAT values and columns is 100000.
  • The maximum length of an ENUM value is 1048576 characters, the maximum number of ENUM values is 65536.
  • The maximum cardinality of an ARRAY value or column is 65536. diff --git a/h2/src/docsrc/html/architecture.html b/h2/src/docsrc/html/architecture.html index af4ccdca18..d01ba072d7 100644 --- a/h2/src/docsrc/html/architecture.html +++ b/h2/src/docsrc/html/architecture.html @@ -1,6 +1,6 @@ diff --git a/h2/src/docsrc/html/build.html b/h2/src/docsrc/html/build.html index 87a588d72b..9e7904423f 100644 --- a/h2/src/docsrc/html/build.html +++ b/h2/src/docsrc/html/build.html @@ -1,6 +1,6 @@ @@ -27,6 +27,8 @@

    Build

    Building the Software
    Using Maven 2
    + + Native Image
    Using Eclipse
    @@ -48,6 +50,8 @@

    Portability

    Environment

    To run this database, a Java Runtime Environment (JRE) version 8 or higher is required. +It it also possible to compile a standalone executable with +experimental native image build.

    To create the database executables, the following software stack was used. @@ -148,6 +152,34 @@

    Using Snapshot Version

    </dependency> +

    Native Image

    + +

    +There is an experimental support for compilation of native executables with native-image tool. +To build an executable with H2 install GraalVM and use its updater to get the native-image tool: +

    +
    +gu install native-image
    +
    +This tool can be used for compilation of native executables: +
    +native-image --no-fallback -jar h2-VERSION.jar h2
    +
    + +

    Known limitations:

    + +

    Using Eclipse

    To create an Eclipse project for H2, use the following steps: diff --git a/h2/src/docsrc/html/changelog.html b/h2/src/docsrc/html/changelog.html index 23c1e63e38..916d76e740 100644 --- a/h2/src/docsrc/html/changelog.html +++ b/h2/src/docsrc/html/changelog.html @@ -1,6 +1,6 @@ @@ -25,1227 +25,354 @@

    Next Version (unreleased)

  • -

    Version 2.1.210 (2022-01-17)

    - - -

    Version 2.0.206 (2022-01-04)

    - - -

    Version 2.0.204 (2021-12-21)

    - - -

    Version 2.0.202 (2021-11-25)

    -