diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml
index f73a33e39..84186a48a 100644
--- a/.github/workflows/benchmark.yml
+++ b/.github/workflows/benchmark.yml
@@ -26,7 +26,7 @@ on:
driver:
description: "Driver version"
required: true
- default: "0.3.1-SNAPSHOT"
+ default: "0.3.2-SNAPSHOT"
options:
description: "Benchmark options"
required: true
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c47a3ad1b..9ade21eba 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -32,7 +32,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- java: [8, 11, 15]
+ java: [8, 11, 17]
# most recent LTS releases as well as latest stable builds
clickhouse: ["21.3", "21.8", "latest"]
fail-fast: false
@@ -59,4 +59,4 @@ jobs:
${{ runner.os }}-build-
- name: Build with Maven
run: |
- mvn --batch-mode --update-snapshots -DclickhouseVersion=${{ matrix.clickhouse }} verify
+ mvn --batch-mode --update-snapshots -Drelease -DclickhouseVersion=${{ matrix.clickhouse }} verify
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index f003027ef..73c72379b 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -6,7 +6,7 @@ on:
version:
description: "Release version"
required: true
- default: "0.3.1-SNAPSHOT"
+ default: "0.3.2-SNAPSHOT"
jobs:
release:
diff --git a/.gitignore b/.gitignore
index 2b66649b1..3109e7d25 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,8 @@
-*.class
+# MacOS
+.DS_Store
-# Package Files #
+# Java Files
+*.class
*.jar
*.war
*.ear
@@ -30,6 +32,7 @@ target/
# Generated files
.flattened-pom.xml
+dependency-reduced-pom.xml
**/parser/*CharStream.java
**/parser/ClickHouseSqlParser.java
**/parser/ClickHouseSqlParserConstants.java
@@ -42,3 +45,6 @@ profile.html
# Shell scripts
*.sh
+
+# test configuration
+**/test/resources/test.properties
diff --git a/third-party-libraries/io.grpc/pom.xml b/third-party-libraries/io.grpc/pom.xml
new file mode 100644
index 000000000..35e0305ba
--- /dev/null
+++ b/third-party-libraries/io.grpc/pom.xml
@@ -0,0 +1,154 @@
+
+
+ 4.0.0
+
+
+ com.clickhouse
+ third-party-libraries
+ 1.0.0
+
+
+ io.grpc
+ ${grpc.version}
+ Repackaged grpc-java for JPMS support
+ A Java modules compatible re-packaging of grpc-java
+
+
+
+
+ io.grpc
+ grpc-api
+
+
+ io.grpc
+ grpc-core
+
+
+ com.google.code.gson
+ gson
+
+
+
+
+ io.grpc
+ grpc-context
+
+
+ io.grpc
+ grpc-netty-shaded
+ provided
+
+
+ io.grpc
+ grpc-okhttp
+ provided
+
+
+ io.grpc
+ grpc-protobuf
+
+
+ io.grpc
+ grpc-stub
+
+
+ io.opencensus
+ opencensus-api
+
+
+ io.opencensus
+ opencensus-impl
+
+
+ io.opencensus
+ opencensus-contrib-grpc-metrics
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ io/grpc/**/*.class
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+ shade
+ package
+
+ shade
+
+
+ false
+ true
+ false
+ true
+
+
+ *:*
+
+ module-info.class
+ META-INF/MANIFEST.MF
+ android/**
+ com/lmax/**
+ google/**
+ io/perfmark/**
+ org/**
+ javax/**
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.moditect
+ moditect-maven-plugin
+
+
+ add-module-infos
+ package
+
+ add-module-info
+
+
+ true
+
+ src/main/java/module-info.java
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/third-party-libraries/io.grpc/src/main/java/io/grpc/LoadBalancerProvider.java b/third-party-libraries/io.grpc/src/main/java/io/grpc/LoadBalancerProvider.java
new file mode 100644
index 000000000..b2ad3e33b
--- /dev/null
+++ b/third-party-libraries/io.grpc/src/main/java/io/grpc/LoadBalancerProvider.java
@@ -0,0 +1,13 @@
+package io.grpc;
+
+/**
+ * Dummy class as placeholder. It will be removed during package phase.
+ */
+public class LoadBalancerProvider {
+ /**
+ * Default constructor.
+ */
+ public LoadBalancerProvider() {
+ // dummy constructor
+ }
+}
diff --git a/third-party-libraries/io.grpc/src/main/java/io/grpc/ManagedChannelProvider.java b/third-party-libraries/io.grpc/src/main/java/io/grpc/ManagedChannelProvider.java
new file mode 100644
index 000000000..ab29593c8
--- /dev/null
+++ b/third-party-libraries/io.grpc/src/main/java/io/grpc/ManagedChannelProvider.java
@@ -0,0 +1,13 @@
+package io.grpc;
+
+/**
+ * Dummy class as placeholder. It will be removed during package phase.
+ */
+public class ManagedChannelProvider {
+ /**
+ * Default constructor.
+ */
+ public ManagedChannelProvider() {
+ // dummy constructor
+ }
+}
diff --git a/third-party-libraries/io.grpc/src/main/java/io/grpc/NameResolverProvider.java b/third-party-libraries/io.grpc/src/main/java/io/grpc/NameResolverProvider.java
new file mode 100644
index 000000000..cd4e3d489
--- /dev/null
+++ b/third-party-libraries/io.grpc/src/main/java/io/grpc/NameResolverProvider.java
@@ -0,0 +1,13 @@
+package io.grpc;
+
+/**
+ * Dummy class as placeholder. It will be removed during package phase.
+ */
+public class NameResolverProvider {
+ /**
+ * Default constructor.
+ */
+ public NameResolverProvider() {
+ // dummy constructor
+ }
+}
diff --git a/third-party-libraries/io.grpc/src/main/java/io/grpc/ServerProvider.java b/third-party-libraries/io.grpc/src/main/java/io/grpc/ServerProvider.java
new file mode 100644
index 000000000..24a8e249a
--- /dev/null
+++ b/third-party-libraries/io.grpc/src/main/java/io/grpc/ServerProvider.java
@@ -0,0 +1,13 @@
+package io.grpc;
+
+/**
+ * Dummy class as placeholder. It will be removed during package phase.
+ */
+public class ServerProvider {
+ /**
+ * Default constructor.
+ */
+ public ServerProvider() {
+ // dummy constructor
+ }
+}
diff --git a/third-party-libraries/io.grpc/src/main/java/module-info.java b/third-party-libraries/io.grpc/src/main/java/module-info.java
new file mode 100644
index 000000000..e699c8985
--- /dev/null
+++ b/third-party-libraries/io.grpc/src/main/java/module-info.java
@@ -0,0 +1,18 @@
+module io.grpc {
+ exports io.grpc;
+ // exports io.grpc.inprocess;
+ // exports io.grpc.internal;
+ // exports io.grpc.util;
+
+ requires java.logging;
+ requires java.naming;
+ // requires com.google.errorprone.annotations;
+ // requires com.lmax.disruptor;
+ // requires io.perfmark;
+
+ uses io.grpc.ManagedChannelProvider;
+ uses io.grpc.NameResolverProvider;
+ uses io.grpc.ServerProvider;
+ // uses io.grpc.internal.BinaryLogProvider;
+ uses io.grpc.LoadBalancerProvider;
+}
diff --git a/third-party-libraries/org.roaringbitmap/pom.xml b/third-party-libraries/org.roaringbitmap/pom.xml
new file mode 100644
index 000000000..12afaa8e2
--- /dev/null
+++ b/third-party-libraries/org.roaringbitmap/pom.xml
@@ -0,0 +1,88 @@
+
+ 4.0.0
+
+
+ com.clickhouse
+ third-party-libraries
+ 1.0.0
+
+
+ org.roaringbitmap
+ ${roaring-bitmap.version}
+ jar
+
+ ${project.artifactId}
+ Repackaged RoaringBitmap for JPMS compatibility
+ https://github.com/ClickHouse/clickhouse-jdbc/tree/master/third-party-libraries/org.roaringbitmap
+
+
+
+ org.roaringbitmap
+ RoaringBitmap
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ org/roaringbitmap/**/*.class
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+ shade
+ package
+
+ shade
+
+
+ false
+ true
+ false
+ true
+
+
+ *:*
+
+ module-info.class
+ META-INF/MANIFEST.MF
+
+
+
+
+
+
+
+
+
+
+
+ org.moditect
+ moditect-maven-plugin
+
+
+ add-module-infos
+ package
+
+ add-module-info
+
+
+ true
+
+ src/main/java/module-info.java
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/third-party-libraries/org.roaringbitmap/src/main/java/module-info.java b/third-party-libraries/org.roaringbitmap/src/main/java/module-info.java
new file mode 100644
index 000000000..16a78c24f
--- /dev/null
+++ b/third-party-libraries/org.roaringbitmap/src/main/java/module-info.java
@@ -0,0 +1,5 @@
+module org.roaringbitmap {
+ exports org.roaringbitmap;
+ exports org.roaringbitmap.buffer;
+ exports org.roaringbitmap.longlong;
+}
diff --git a/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/DummyClass.java b/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/DummyClass.java
new file mode 100644
index 000000000..292d72ab1
--- /dev/null
+++ b/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/DummyClass.java
@@ -0,0 +1,12 @@
+package org.roaringbitmap;
+
+/**
+ * Dummy class as placeholder. It will be removed during package phase.
+ */
+public class DummyClass {
+ /**
+ * Default constructor.
+ */
+ public DummyClass() {
+ }
+}
diff --git a/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/buffer/DummyClass.java b/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/buffer/DummyClass.java
new file mode 100644
index 000000000..c47b4a285
--- /dev/null
+++ b/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/buffer/DummyClass.java
@@ -0,0 +1,12 @@
+package org.roaringbitmap.buffer;
+
+/**
+ * Dummy class as placeholder. It will be removed during package phase.
+ */
+public class DummyClass {
+ /**
+ * Default constructor.
+ */
+ public DummyClass() {
+ }
+}
diff --git a/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/longlong/DummyClass.java b/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/longlong/DummyClass.java
new file mode 100644
index 000000000..95b957cc7
--- /dev/null
+++ b/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/longlong/DummyClass.java
@@ -0,0 +1,12 @@
+package org.roaringbitmap.longlong;
+
+/**
+ * Dummy class as placeholder. It will be removed during package phase.
+ */
+public class DummyClass {
+ /**
+ * Default constructor.
+ */
+ public DummyClass() {
+ }
+}
diff --git a/third-party-libraries/pom.xml b/third-party-libraries/pom.xml
new file mode 100644
index 000000000..312f8fefc
--- /dev/null
+++ b/third-party-libraries/pom.xml
@@ -0,0 +1,310 @@
+
+
+ 4.0.0
+
+ com.clickhouse
+ third-party-libraries
+ 1.0.0
+ pom
+
+ ${project.artifactId}
+ Repackaged third party libraries for JPMS compatibility
+ https://github.com/ClickHouse/clickhouse-jdbc/tree/master/third-party-libraries
+ 2021
+
+
+ ClickHouse, Inc.
+ https://clickhouse.com/
+
+
+
+
+ The Apache Software License, Version 2.0
+ http://www.apache.org/licenses/LICENSE-2.0
+ repo
+
+
+
+
+
+ zhicwu
+ Zhichun Wu
+ zhicwu@gmail.com
+ +8
+
+
+
+
+ io.grpc
+ org.roaringbitmap
+
+
+
+ https://github.com/ClickHouse/clickhouse-jdbc
+ scm:git@github.com:ClickHouse/clickhouse-jdbc.git
+ scm:git@github.com:ClickHouse/clickhouse-jdbc.git
+ HEAD
+
+
+
+ Github
+ https://github.com/ClickHouse/clickhouse-jdbc/issues
+
+
+
+ Github
+ https://github.com/ClickHouse/clickhouse-jdbc/actions
+
+
+
+
+ ossrh
+ https://s01.oss.sonatype.org/content/repositories/snapshots
+
+
+ ossrh
+ https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+
+
+ 2021
+ UTF-8
+ UTF-8
+ 1.40.1
+ 2.8.8
+ 0.28.3
+ 0.9.21
+ 3.3.0
+ 3.0.0-M1
+ 1.2.7
+ 1.6.8
+ 1.6
+ 3.8.1
+ 1.0.0.RC1
+ 3.2.4
+ 3.2.1
+ 3.2.0
+
+
+
+
+
+ com.google.code.gson
+ gson
+ ${gson.version}
+
+
+ org.roaringbitmap
+ RoaringBitmap
+ ${roaring-bitmap.version}
+
+
+ io.grpc
+ grpc-api
+ ${grpc.version}
+
+
+ io.grpc
+ grpc-core
+ ${grpc.version}
+
+
+ io.grpc
+ grpc-context
+ ${grpc.version}
+
+
+ io.grpc
+ grpc-netty-shaded
+ ${grpc.version}
+
+
+ io.grpc
+ grpc-okhttp
+ ${grpc.version}
+
+
+ io.grpc
+ grpc-protobuf
+ ${grpc.version}
+
+
+ io.grpc
+ grpc-stub
+ ${grpc.version}
+
+
+ io.opencensus
+ opencensus-api
+ ${opencensus.version}
+
+
+ io.opencensus
+ opencensus-impl
+ ${opencensus.version}
+
+
+ io.opencensus
+ opencensus-contrib-grpc-metrics
+ ${opencensus.version}
+
+
+ org.apache.tomcat
+ annotations-api
+ ${annotations-api.version}
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${compiler-plugin.version}
+
+ 9
+ true
+
+ -Xlint:all
+ -Werror
+
+
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+ ${deploy-plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ ${gpg-plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${jar-plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ ${shade-plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ ${source-plugin.version}
+
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+ ${staging-plugin.version}
+
+
+ org.codehaus.mojo
+ flatten-maven-plugin
+ ${flatten-plugin.version}
+
+ true
+ ossrh
+
+
+
+ flatten
+ process-resources
+
+ flatten
+
+
+
+ flatten.clean
+ clean
+
+ clean
+
+
+
+
+
+ org.moditect
+ moditect-maven-plugin
+ ${moditect-plugin.version}
+
+
+
+
+
+ org.codehaus.mojo
+ flatten-maven-plugin
+
+
+
+
+
+
+ release
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+
+
+ --pinentry-mode
+ loopback
+
+
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+
+ true
+
+
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+
+
+ default-deploy
+ deploy
+
+ deploy
+
+
+
+
+ ossrh
+ https://s01.oss.sonatype.org/
+
+
+
+
+
+
+
\ No newline at end of file