diff --git a/assembly-thin/pom.xml b/assembly-thin/pom.xml
new file mode 100644
index 0000000000..83313186bd
--- /dev/null
+++ b/assembly-thin/pom.xml
@@ -0,0 +1,261 @@
+
+
+ 4.0.0
+
+
+ com.databricks
+ databricks-jdbc-parent
+ 3.2.2-SNAPSHOT
+
+
+ databricks-jdbc-thin
+ jar
+ Databricks JDBC thin jar
+
+ Databricks JDBC thin jar.
+
+ https://github.com/databricks/databricks-jdbc
+
+
+
+ Apache License, Version 2.0
+
+ https://github.com/databricks/databricks-jdbc/blob/main/LICENSE
+
+
+
+
+
+ Databricks JDBC Team
+ eng-oss-sql-driver@databricks.com
+ Databricks
+ https://www.databricks.com
+
+
+
+ scm:git:https://github.com/databricks/databricks-jdbc.git
+
+
+ scm:git:https://github.com/databricks/databricks-jdbc.git
+
+ https://github.com/databricks/databricks-jdbc
+
+
+ GitHub Issues
+ https://github.com/databricks/databricks-jdbc/issues
+
+
+
+
+ com.databricks
+ databricks-jdbc-core
+ 3.2.2-SNAPSHOT
+
+
+
+
+ false
+
+
+
+
+
+ org.codehaus.mojo
+ flatten-maven-plugin
+ 1.6.0
+
+ true
+ oss
+
+ expand
+ remove
+
+
+
+
+ flatten
+ process-resources
+
+ flatten
+
+
+
+ flatten.clean
+ clean
+
+ clean
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.5.0
+
+
+ shade and package jars
+ package
+
+ shade
+
+
+ true
+ true
+
+ true
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+
+ org.apache.arrow:*
+
+ com.databricks:databricks-jdbc-core
+
+
+
+
+
+ org.apache.arrow
+
+ com.databricks.internal.apache.arrow
+
+
+
+
+
+ *:*
+
+ META-INF/*.DSA
+ META-INF/*.RSA
+ META-INF/*.SF
+ META-INF/DEPENDENCIES
+ META-INF/LICENSE.txt
+ META-INF/versions/**
+
+
+
+
+
+
+ com.databricks.client.jdbc.Driver
+
+
+
+ ${project.artifactId}
+
+
+ ${project.version}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ release
+
+
+
+
+ org.sonatype.central
+ central-publishing-maven-plugin
+
+ false
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+
+
+ attach-sources
+ none
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+
+
+ attach-javadocs
+ none
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ copy-javadoc
+ package
+
+ copy
+
+
+
+
+ com.databricks
+ databricks-jdbc-core
+ ${project.version}
+ javadoc
+ jar
+ ${project.artifactId}-${project.version}-javadoc.jar
+
+
+ ${project.build.directory}
+
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ attach-javadoc
+ package
+
+ attach-artifact
+
+
+
+
+ ${project.build.directory}/${project.artifactId}-${project.version}-javadoc.jar
+ jar
+ javadoc
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/assembly-thin/src/main/resources/README.md b/assembly-thin/src/main/resources/README.md
new file mode 100644
index 0000000000..506fc8b4c7
--- /dev/null
+++ b/assembly-thin/src/main/resources/README.md
@@ -0,0 +1 @@
+Shading Arrow in the driver.
\ No newline at end of file
diff --git a/assembly-uber/pom.xml b/assembly-uber/pom.xml
new file mode 100644
index 0000000000..689ad0d832
--- /dev/null
+++ b/assembly-uber/pom.xml
@@ -0,0 +1,357 @@
+
+
+ 4.0.0
+
+
+ com.databricks
+ databricks-jdbc-parent
+ 3.2.2-SNAPSHOT
+
+
+ databricks-jdbc
+ jar
+ Databricks JDBC uber jar
+
+ Databricks JDBC uber jar.
+
+ https://github.com/databricks/databricks-jdbc
+
+
+
+ Apache License, Version 2.0
+
+ https://github.com/databricks/databricks-jdbc/blob/main/LICENSE
+
+
+
+
+
+ Databricks JDBC Team
+ eng-oss-sql-driver@databricks.com
+ Databricks
+ https://www.databricks.com
+
+
+
+ scm:git:https://github.com/databricks/databricks-jdbc.git
+
+
+ scm:git:https://github.com/databricks/databricks-jdbc.git
+
+ https://github.com/databricks/databricks-jdbc
+
+
+ GitHub Issues
+ https://github.com/databricks/databricks-jdbc/issues
+
+
+
+
+ com.databricks
+ databricks-jdbc-core
+ 3.2.2-SNAPSHOT
+
+
+
+
+ false
+
+
+
+
+
+ org.codehaus.mojo
+ flatten-maven-plugin
+ 1.6.0
+
+ true
+ oss
+
+ expand
+ remove
+
+
+
+
+ flatten
+ process-resources
+
+ flatten
+
+
+
+ flatten.clean
+ clean
+
+ clean
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.5.0
+
+
+ org.apache.logging.log4j
+
+ log4j-transform-maven-shade-plugin-extensions
+
+ 0.1.0
+
+
+
+
+ shade and package jars
+ package
+
+ shade
+
+
+
+ false
+
+
+
+ codegen
+
+ com.databricks.internal.codegen
+
+
+
+ com.databricks.sdk
+ com.databricks.internal.sdk
+
+
+
+ com.fasterxml
+
+ com.databricks.internal.fasterxml
+
+
+
+ com.google
+
+ com.databricks.internal.google
+
+
+
+ com.nimbusds
+
+ com.databricks.internal.nimbusds
+
+
+
+ io
+ com.databricks.internal.io
+
+
+
+ net.jpountz
+
+ com.databricks.internal.jpountz
+
+
+
+ org.apache
+
+ com.databricks.internal.apache
+
+
+
+ org.bouncycastle
+
+ com.databricks.internal.bouncycastle
+
+
+
+ org.checkerframework
+
+ com.databricks.internal.checkerframework
+
+
+
+ org.ini4j
+
+ com.databricks.internal.ini4j
+
+
+
+ org.json
+
+ com.databricks.internal.json
+
+
+
+ org.locationtech.jts
+ com.databricks.internal.jts
+
+
+
+ org.osgi
+
+ com.databricks.internal.osgi
+
+
+
+ org.slf4j
+
+ com.databricks.internal.slf4j
+
+
+
+
+
+ *:*
+
+ META-INF/*.DSA
+ META-INF/*.RSA
+ META-INF/*.SF
+ META-INF/DEPENDENCIES
+ META-INF/LICENSE.txt
+ META-INF/versions/**
+
+
+
+ *:*
+
+ edu/**
+ javax/**
+ jakarta/**
+ net/jcip/**
+
+
+
+
+
+
+
+ com.databricks.client.jdbc.Driver
+
+
+
+ ${project.artifactId}
+
+
+ ${project.version}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ release
+
+
+
+
+ org.sonatype.central
+ central-publishing-maven-plugin
+
+ false
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+
+
+ attach-sources
+ none
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+
+
+ attach-javadocs
+ none
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ copy-sources-javadoc
+ package
+
+ copy
+
+
+
+
+ com.databricks
+ databricks-jdbc-core
+ ${project.version}
+ sources
+ jar
+ ${project.artifactId}-${project.version}-sources.jar
+
+
+ com.databricks
+ databricks-jdbc-core
+ ${project.version}
+ javadoc
+ jar
+ ${project.artifactId}-${project.version}-javadoc.jar
+
+
+ ${project.build.directory}
+
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ attach-sources-javadoc
+ package
+
+ attach-artifact
+
+
+
+
+ ${project.build.directory}/${project.artifactId}-${project.version}-sources.jar
+ jar
+ sources
+
+
+ ${project.build.directory}/${project.artifactId}-${project.version}-javadoc.jar
+ jar
+ javadoc
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assembly-uber/src/main/resources/README.md b/assembly-uber/src/main/resources/README.md
new file mode 100644
index 0000000000..f8e46b4805
--- /dev/null
+++ b/assembly-uber/src/main/resources/README.md
@@ -0,0 +1 @@
+Shaded version of the driver.
\ No newline at end of file
diff --git a/jdbc-core/pom.xml b/jdbc-core/pom.xml
new file mode 100644
index 0000000000..53eb8551e0
--- /dev/null
+++ b/jdbc-core/pom.xml
@@ -0,0 +1,536 @@
+
+
+ 4.0.0
+
+
+ com.databricks
+ databricks-jdbc-parent
+ 3.2.2-SNAPSHOT
+
+
+ databricks-jdbc-core
+ jar
+ Databricks JDBC Driver
+ Databricks JDBC Driver.
+ https://github.com/databricks/databricks-jdbc
+
+
+ Apache License, Version 2.0
+ https://github.com/databricks/databricks-jdbc/blob/main/LICENSE
+
+
+
+
+ Databricks JDBC Team
+ eng-oss-sql-driver@databricks.com
+ Databricks
+ https://www.databricks.com
+
+
+
+ scm:git:https://github.com/databricks/databricks-jdbc.git
+ scm:git:https://github.com/databricks/databricks-jdbc.git
+ https://github.com/databricks/databricks-jdbc
+
+
+ GitHub Issues
+ https://github.com/databricks/databricks-jdbc/issues
+
+
+
+ local-test-repo
+ file://${project.build.directory}/local-repo
+
+
+
+
+
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+
+ com.google.code.gson
+ gson
+ ${gson.version}
+
+
+
+
+
+ com.databricks
+ databricks-sdk-java
+ ${databricks-sdk.version}
+
+
+ org.apache.commons
+ commons-configuration2
+ ${commons-configuration.version}
+
+
+ org.apache.arrow
+ arrow-memory-core
+ ${arrow.version}
+
+
+ org.apache.arrow
+ arrow-memory-unsafe
+ ${arrow.version}
+
+
+ org.apache.arrow
+ arrow-vector
+ ${arrow.version}
+
+
+ org.apache.arrow
+ arrow-memory-netty
+ ${arrow.version}
+
+
+ org.apache.httpcomponents
+ httpclient
+ ${httpclient.version}
+
+
+ org.apache.thrift
+ libthrift
+ ${thrift.version}
+
+
+ org.slf4j
+ slf4j-api
+ ${slf4j.version}
+
+
+ org.apache.logging.log4j
+ log4j-slf4j2-impl
+ ${log4j.version}
+ test
+
+
+ org.apache.logging.log4j
+ log4j-core
+ ${log4j.version}
+ test
+
+
+ org.apache.logging.log4j
+ log4j-api
+ ${log4j.version}
+ test
+
+
+ commons-io
+ commons-io
+ ${commons-io.version}
+
+
+ com.google.code.findbugs
+ annotations
+ ${google.findbugs.annotations.version}
+
+
+ com.google.guava
+ guava
+ ${google.guava.version}
+
+
+ org.junit.jupiter
+ junit-jupiter
+ ${junit.jupiter.version}
+ test
+
+
+ com.nimbusds
+ nimbus-jose-jwt
+ ${nimbusjose.version}
+
+
+ org.bouncycastle
+ bcprov-jdk18on
+ ${bouncycastle.version}
+
+
+ org.bouncycastle
+ bcpkix-jdk18on
+ ${bouncycastle.version}
+
+
+ org.mockito
+ mockito-inline
+ ${mockito.version}
+ test
+
+
+ org.mockito
+ mockito-junit-jupiter
+ ${mockito.version}
+ test
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ ${jackson.version}
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ ${jackson.version}
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ ${jackson.version}
+
+
+ org.immutables
+ value
+ ${immutables.value.version}
+ provided
+
+
+ net.hydromatic
+ sql-logic-test
+ ${sql-logic-test.version}
+ test
+
+
+ org.lz4
+ lz4-java
+ ${lz4-compression.version}
+
+
+
+ io.grpc
+ grpc-context
+ ${grpc.version}
+
+
+
+ io.netty
+ netty-common
+ ${netty.version}
+
+
+
+ io.netty
+ netty-buffer
+ ${netty.version}
+
+
+ jakarta.annotation
+ jakarta.annotation-api
+ ${annotation.version}
+
+
+ org.wiremock
+ wiremock
+ ${wiremock.version}
+ test
+
+
+ commons-fileupload
+ commons-fileupload
+
+
+
+
+ org.apache.httpcomponents.client5
+ httpclient5
+ ${async-httpclient.version}
+
+
+ org.apache.httpcomponents.core5
+ httpcore5
+ ${async-httpclient.version}
+
+
+ io.github.resilience4j
+ resilience4j-circuitbreaker
+ ${resilience4j.version}
+
+
+ io.github.resilience4j
+ resilience4j-core
+ ${resilience4j.version}
+
+
+ org.locationtech.jts
+ jts-core
+ 1.20.0
+
+
+
+ org.openjdk.jmh
+ jmh-core
+ ${jmh.version}
+ test
+
+
+
+ org.openjdk.jmh
+ jmh-generator-annprocess
+ ${jmh.version}
+ test
+
+
+
+
+
+ ${project.artifactId}-${project.version}
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ com.databricks.client.jdbc.Driver
+ true
+
+
+
+
+
+ attach-test-jar
+
+ test-jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/DatabricksDriverExamples.java
+ **/integration/**/*.java
+ **/ErrorTypes.java
+ **/ErrorCodes.java
+ **/ProxyTest.java
+ **/LoggingTest.java
+ **/SSLTest.java
+
+ **/ArrowBufferAllocatorNettyManagerTest.java
+ **/ArrowBufferAllocatorUnsafeManagerTest.java
+ **/ArrowBufferAllocatorUnknownManagerTest.java
+
+
+ @{argLine}
+ -Xmx5g
+ --add-opens=java.base/java.nio=ALL-UNNAMED
+ -Dnet.bytebuddy.experimental=true
+
+
+ JDKLOGGER
+ ${project.basedir}/src/test/resources/logging.properties
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+ java
+
+ --add-opens=java.base/java.nio=ALL-UNNAMED
+ -classpath
+
+ com.databricks.jdbc.sqllogictest.SLTMain
+ -e
+ ${slt.executor}
+ -p
+ ${slt.token}
+
+ test
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+
+ org.immutables
+ value
+ ${immutables.value.version}
+
+
+ org.openjdk.jmh
+ jmh-generator-annprocess
+ ${jmh.version}
+
+
+
+
+
+ org.owasp
+ dependency-check-maven
+
+
+ HTML
+ JSON
+
+
+ 7
+ ${nvd.api.key}
+ 10
+ 4000
+ true
+ ${ossindex.username}
+ ${ossindex.password}
+
+
+
+
+ check
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+
+
+
+ prepare-agent
+
+
+
+ report
+ prepare-package
+
+ report
+
+
+
+
+
+ **/*Constants*
+ **/*Exception*
+ **/CommandName*
+ **/DatabricksJdbcConstants*
+ **/DatabricksJdbcUrlParams*
+ **/Driver*
+ **/EnvironmentVariables*
+ **/model/**
+ **/thrift/generated/**
+
+
+
+
+
+
+
+
+ low-memory
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ @{argLine} -Xmx100m -Darrow.memory.debug.allocator=true
+
+
+
+
+
+
+
+
+
+ jdk17-NioNotOpen
+
+
+
+ org.apache.maven.plugins
+ maven-toolchains-plugin
+
+
+
+ toolchain
+
+
+
+
+
+
+ 17
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+
+ @{argLine} -Darrow.memory.debug.allocator=true
+
+
+
+
+
+
+
+
+
+ jdk21-NioNotOpen
+
+
+
+ org.apache.maven.plugins
+ maven-toolchains-plugin
+
+
+
+ toolchain
+
+
+
+
+
+
+ 21
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+
+ @{argLine} -Darrow.memory.debug.allocator=true
+
+
+
+
+
+
+
+
+
+
diff --git a/jdbc-core/src b/jdbc-core/src
new file mode 120000
index 0000000000..5cd551cf26
--- /dev/null
+++ b/jdbc-core/src
@@ -0,0 +1 @@
+../src
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 26ea002cce..c542af6749 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,13 +3,22 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.databricks
- databricks-jdbc
+ databricks-jdbc-parent
- 3.2.1
- jar
- Databricks JDBC Driver
- Databricks JDBC Driver.
+ 3.2.2-SNAPSHOT
+ pom
+ Databricks JDBC Parent
+ Parent POM for Databricks JDBC Driver.
https://github.com/databricks/databricks-jdbc
+
+
+ jdbc-core
+ assembly-thin
+ assembly-uber
+ test-assembly-thin
+ test-assembly-uber
+
+
Apache License, Version 2.0
@@ -33,425 +42,118 @@
GitHub Issues
https://github.com/databricks/databricks-jdbc/issues
-
-
- local-test-repo
- file://${project.build.directory}/local-repo
-
-
+
+
UTF-8
UTF-8
- 18.3.0
- 3.18.0
11
11
- 5.2.0
- 2.18.3
- 2.25.3
- 2.0.13
- 33.0.0-jre
- 5.9.2
- 3.0.1
- 2.13.2
- 2.9.2
- 4.5.14
+ true
+
+
+ 3.2.0
+ 3.14.1
+ 3.1.2
+ 3.3.0
+ 1.2.1
+ 12.1.6
+ 0.8.11
+ 2.39.0
+ 3.6.1
+
+
+ 3.2.2-SNAPSHOT
+ 18.3.0
+ 3.18.0
2.10.1
2.14.0
0.69.0
- 3.1.2
- 0.3
- 1.10.1
+ 4.5.14
+ 5.3.1
0.19.0
+ 2.0.13
+ 2.25.3
+ 2.18.3
+ 2.13.2
+ 33.0.0-jre
+ 3.0.1
+ 2.9.2
+ 1.8.1
1.3.5
- dbsql
- dummy-token
- 3.5.4
- 10.0.2
- 1.79
- 5.3.1
4.2.6.Final
1.71.0
1.7.0
- 3.2.0
+ 10.0.2
+ 1.79
1.37
+
+
+ 5.9.2
+ 5.2.0
+ 3.5.4
+ 0.3
+
+
+ dbsql
+ dummy-token
-
-
-
-
- org.apache.commons
- commons-lang3
- ${commons-lang3.version}
-
-
-
- com.google.code.gson
- gson
- ${gson.version}
-
-
-
-
-
- com.databricks
- databricks-sdk-java
- ${databricks-sdk.version}
-
-
- org.apache.commons
- commons-configuration2
- ${commons-configuration.version}
-
-
- org.apache.arrow
- arrow-memory-core
- ${arrow.version}
-
-
- org.apache.arrow
- arrow-memory-unsafe
- ${arrow.version}
-
-
- org.apache.arrow
- arrow-vector
- ${arrow.version}
-
-
- org.apache.arrow
- arrow-memory-netty
- ${arrow.version}
-
-
- org.apache.httpcomponents
- httpclient
- ${httpclient.version}
-
-
- org.apache.thrift
- libthrift
- ${thrift.version}
-
-
- org.slf4j
- slf4j-api
- ${slf4j.version}
-
-
- org.apache.logging.log4j
- log4j-slf4j2-impl
- ${log4j.version}
- test
-
-
- org.apache.logging.log4j
- log4j-core
- ${log4j.version}
- test
-
-
- org.apache.logging.log4j
- log4j-api
- ${log4j.version}
- test
-
-
- commons-io
- commons-io
- ${commons-io.version}
-
-
- com.google.code.findbugs
- annotations
- ${google.findbugs.annotations.version}
-
-
- com.google.guava
- guava
- ${google.guava.version}
-
-
- org.junit.jupiter
- junit-jupiter
- ${junit.jupiter.version}
- test
-
-
- com.nimbusds
- nimbus-jose-jwt
- ${nimbusjose.version}
-
-
- org.bouncycastle
- bcprov-jdk18on
- ${bouncycastle.version}
-
-
- org.bouncycastle
- bcpkix-jdk18on
- ${bouncycastle.version}
-
-
- org.mockito
- mockito-inline
- ${mockito.version}
- test
-
-
- org.mockito
- mockito-junit-jupiter
- ${mockito.version}
- test
-
-
- com.fasterxml.jackson.core
- jackson-databind
- ${jackson.version}
-
-
- com.fasterxml.jackson.core
- jackson-annotations
- ${jackson.version}
-
-
- com.fasterxml.jackson.core
- jackson-core
- ${jackson.version}
-
-
- org.immutables
- value
- ${immutables.value.version}
- provided
-
-
- net.hydromatic
- sql-logic-test
- ${sql-logic-test.version}
- test
-
-
- at.yawk.lz4
- lz4-java
- ${lz4-compression.version}
-
-
-
- io.grpc
- grpc-context
- ${grpc.version}
-
-
-
- io.netty
- netty-common
- ${netty.version}
-
-
-
- io.netty
- netty-buffer
- ${netty.version}
-
-
- jakarta.annotation
- jakarta.annotation-api
- ${annotation.version}
-
-
- org.wiremock
- wiremock
- ${wiremock.version}
- test
-
-
- commons-fileupload
- commons-fileupload
-
-
-
-
- org.apache.httpcomponents.client5
- httpclient5
- ${async-httpclient.version}
-
-
- org.apache.httpcomponents.core5
- httpcore5
- ${async-httpclient.version}
-
-
- io.github.resilience4j
- resilience4j-circuitbreaker
- ${resilience4j.version}
-
-
- io.github.resilience4j
- resilience4j-core
- ${resilience4j.version}
-
-
- org.locationtech.jts
- jts-core
- 1.20.0
-
-
-
- org.openjdk.jmh
- jmh-core
- ${jmh.version}
- test
-
-
-
- org.openjdk.jmh
- jmh-generator-annprocess
- ${jmh.version}
- test
-
-
-
- ${project.artifactId}-${project.version}
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven-compiler-plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven-surefire-plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven-jar-plugin.version}
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ ${exec-maven-plugin.version}
+
+
+ org.owasp
+ dependency-check-maven
+ ${dependency-check-maven.version}
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ ${jacoco-maven-plugin.version}
+
+
+ com.diffplug.spotless
+ spotless-maven-plugin
+ ${spotless-maven-plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-toolchains-plugin
+ ${maven-toolchains-plugin.version}
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ ${build-helper-maven-plugin.version}
+
+
+
+
-
- org.apache.maven.plugins
- maven-jar-plugin
- 3.3.0
-
-
-
- com.databricks.client.jdbc.Driver
- true
-
-
-
-
-
- attach-thin-jar
- package
-
- jar
-
-
- thin
-
-
-
- attach-test-jar
-
- test-jar
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven-surefire-plugin.version}
-
-
- **/DatabricksDriverExamples.java
- **/integration/**/*.java
- **/ErrorTypes.java
- **/ErrorCodes.java
- **/ProxyTest.java
- **/LoggingTest.java
- **/SSLTest.java
-
- **/ArrowBufferAllocatorNettyManagerTest.java
- **/ArrowBufferAllocatorUnsafeManagerTest.java
- **/ArrowBufferAllocatorUnknownManagerTest.java
-
-
- @{argLine}
- --add-opens=java.base/java.nio=ALL-UNNAMED
- -Dnet.bytebuddy.experimental=true
-
-
- JDKLOGGER
- ${project.basedir}/src/test/resources/logging.properties
-
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
- 1.2.1
-
- java
-
- --add-opens=java.base/java.nio=ALL-UNNAMED
- -classpath
-
- com.databricks.jdbc.sqllogictest.SLTMain
- -e
- ${slt.executor}
- -p
- ${slt.token}
-
- test
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
-
- org.immutables
- value
- ${immutables.value.version}
-
-
- org.openjdk.jmh
- jmh-generator-annprocess
- ${jmh.version}
-
-
-
-
-
- org.owasp
- dependency-check-maven
- 12.1.6
-
-
- HTML
- JSON
-
-
- 7
- ${nvd.api.key}
- 10
- 4000
- true
- ${ossindex.username}
- ${ossindex.password}
-
-
-
-
- check
-
-
-
-
com.diffplug.spotless
spotless-maven-plugin
- 2.39.0
format
@@ -466,163 +168,20 @@
1.18.1
+
+
+
+ **/MemoryUtil.java
+ **/ArrowBuf.java
+ **/DecimalUtility.java
+
-
- org.jacoco
- jacoco-maven-plugin
- 0.8.11
-
-
-
- prepare-agent
-
-
-
- report
- prepare-package
-
- report
-
-
-
-
-
- **/*Constants*
- **/*Exception*
- **/CommandName*
- **/DatabricksJdbcConstants*
- **/DatabricksJdbcUrlParams*
- **/Driver*
- **/EnvironmentVariables*
- **/model/**
- **/thrift/generated/**
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 3.5.0
-
-
- org.apache.logging.log4j
- log4j-transform-maven-shade-plugin-extensions
- 0.1.0
-
-
-
-
- shade and package jars
- package
-
- shade
-
-
-
- false
-
-
- codegen
- com.databricks.internal.codegen
-
-
- com.databricks.sdk
- com.databricks.internal.sdk
-
-
- com.fasterxml
- com.databricks.internal.fasterxml
-
-
- com.google
- com.databricks.internal.google
-
-
- com.nimbusds
- com.databricks.internal.nimbusds
-
-
- io
- com.databricks.internal.io
-
-
- net.jpountz
- com.databricks.internal.jpountz
-
-
- org.apache
- com.databricks.internal.apache
-
-
- org.bouncycastle
- com.databricks.internal.bouncycastle
-
-
- org.checkerframework
- com.databricks.internal.checkerframework
-
-
- org.ini4j
- com.databricks.internal.ini4j
-
-
- org.json
- com.databricks.internal.json
-
-
- org.locationtech.jts
- com.databricks.internal.jts
-
-
- org.osgi
- com.databricks.internal.osgi
-
-
- org.slf4j
- com.databricks.internal.slf4j
-
-
-
-
- *:*
-
- META-INF/*.DSA
- META-INF/*.RSA
- META-INF/*.SF
- META-INF/DEPENDENCIES
- META-INF/LICENSE.txt
- META-INF/versions/**
-
-
-
- *:*
-
- edu/**
- javax/**
- jakarta/**
- net/jcip/**
-
-
-
-
-
-
- com.databricks.client.jdbc.Driver
-
- ${project.artifactId}
- ${project.version}
-
-
-
-
-
-
-
-
+
@@ -673,28 +232,6 @@
release
-
- org.codehaus.mojo
- build-helper-maven-plugin
- 3.6.1
-
-
- attach-uber-minimal-pom
-
- attach-artifact
-
- package
-
-
-
- ${project.basedir}/uber-minimal-pom.xml
- pom
-
-
-
-
-
-
org.apache.maven.plugins
maven-source-plugin
@@ -755,197 +292,12 @@
central
true
published
-
-
-
-
-
-
-
- jdk11
-
-
-
- org.apache.maven.plugins
- maven-toolchains-plugin
- ${maven-toolchains-plugin.version}
-
-
-
- toolchain
-
-
-
-
-
-
- 11
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- @{argLine}
-
-
-
-
-
-
-
- jdk17
-
-
-
- org.apache.maven.plugins
- maven-toolchains-plugin
- ${maven-toolchains-plugin.version}
-
-
-
- toolchain
-
-
-
-
-
-
- 17
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- @{argLine} -Darrow.memory.debug.allocator=true
-
-
-
-
-
-
-
- jdk17-nio-open
-
-
-
- org.apache.maven.plugins
- maven-toolchains-plugin
- ${maven-toolchains-plugin.version}
-
-
-
- toolchain
-
-
-
-
-
-
- 17
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
-
- @{argLine} --add-opens=java.base/java.nio=ALL-UNNAMED
- -Darrow.memory.debug.allocator=true
-
-
-
-
-
-
-
-
- jdk21
-
-
-
- org.apache.maven.plugins
- maven-toolchains-plugin
- ${maven-toolchains-plugin.version}
-
-
-
- toolchain
-
-
-
-
-
-
- 21
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- @{argLine} -Darrow.memory.debug.allocator=true
-
-
-
-
-
-
-
- jdk21-nio-open
-
-
-
- org.apache.maven.plugins
- maven-toolchains-plugin
- ${maven-toolchains-plugin.version}
-
-
-
- toolchain
-
-
-
-
-
-
- 21
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
-
- @{argLine} --add-opens=java.base/java.nio=ALL-UNNAMED
- -Darrow.memory.debug.allocator=true
-
+
+ true
-
-
+
\ No newline at end of file
diff --git a/test-assembly-thin/pom.xml b/test-assembly-thin/pom.xml
new file mode 100644
index 0000000000..66bf788b1d
--- /dev/null
+++ b/test-assembly-thin/pom.xml
@@ -0,0 +1,31 @@
+
+
+ 4.0.0
+
+
+ com.databricks
+ databricks-jdbc-parent
+ 3.2.2-SNAPSHOT
+
+
+ test-databricks-jdbc-thin
+ jar
+ Test thin
+ Test JDBC databricks driver thin jar.
+
+
+
+ com.databricks
+ databricks-jdbc-thin
+ 3.2.2-SNAPSHOT
+
+
+ org.junit.jupiter
+ junit-jupiter
+ ${junit.jupiter.version}
+ test
+
+
+
\ No newline at end of file
diff --git a/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java b/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java
new file mode 100644
index 0000000000..b74a5bd792
--- /dev/null
+++ b/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java
@@ -0,0 +1,198 @@
+package com.databricks.jdbc;
+
+import com.databricks.jdbc.api.impl.arrow.ArrowBufferAllocator;
+import com.databricks.jdbc.common.DatabricksJdbcUrlParams;
+import com.databricks.sdk.core.DatabricksConfig;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.collect.ImmutableList;
+import com.google.flatbuffers.FlatBufferBuilder;
+import com.google.gson.Gson;
+import com.google.protobuf.ByteString;
+import com.nimbusds.jose.JWSAlgorithm;
+import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig;
+import io.grpc.Context;
+import io.netty.buffer.ByteBufAllocator;
+import io.vavr.collection.List;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Properties;
+import java.util.logging.Logger;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
+import org.apache.hc.client5.http.impl.classic.HttpClients;
+import org.apache.hc.core5.http.HttpStatus;
+import org.apache.thrift.TException;
+import org.bouncycastle.jce.provider.BouncyCastleProvider;
+import org.json.JSONObject;
+import org.junit.jupiter.api.Test;
+import org.locationtech.jts.geom.GeometryFactory;
+
+/** Test artifacts are packaged properly. */
+public class TestThinPackaging {
+ /** Logger instance. */
+ private static final Logger logger = Logger.getLogger(TestThinPackaging.class.getName());
+
+ /** Test packages are shaded as expected. */
+ @Test
+ public void testThinPackaging() {
+ // Test that Arrow packages is relocated.
+ com.databricks.internal.apache.arrow.memory.BufferAllocator bufferAllocator =
+ ArrowBufferAllocator.getBufferAllocator();
+ logger.info("Shaded buffer allocator " + bufferAllocator);
+
+ // Test that jackson packages are not relocated.
+ ObjectMapper jacksonMapper = new ObjectMapper();
+ logger.info("Jackson ObjectMapper: " + jacksonMapper);
+
+ // Test that guava is not relocated.
+ ImmutableList guavaList = ImmutableList.of("test");
+ logger.info("Guava ImmutableList: " + guavaList);
+
+ // Test that protobuf is not relocated.
+ ByteString protoByteString = ByteString.copyFromUtf8("test");
+ logger.info("Protobuf ByteString: " + protoByteString);
+
+ // Test that commons-lang3 is not relocated.
+ String commonsResult = StringUtils.upperCase("test");
+ logger.info("Commons-Lang3 result: " + commonsResult);
+
+ // Test that commons-codec is not relocated.
+ byte[] commonsCodec = Base64.encodeBase64("test".getBytes());
+ logger.info("Commons-Codec Base64: " + new String(commonsCodec));
+
+ // Test that commons-io is not relocated.
+ try {
+ String commonsIo = IOUtils.toString(new ByteArrayInputStream("test".getBytes()), "UTF-8");
+ logger.info("Commons-IO result: " + commonsIo);
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to test Commons-IO", e);
+ }
+
+ // Test that httpclient5 is not relocated.
+ HttpClientBuilder httpClientBuilder = HttpClients.custom();
+ logger.info("HttpClient5 builder: " + httpClientBuilder);
+
+ // Test that httpcore5 is not relocated.
+ int httpStatus = HttpStatus.SC_OK;
+ logger.info("HttpCore5 status: " + httpStatus);
+
+ // Test that thrift is not relocated.
+ TException thriftException = new TException("test");
+ logger.info("Thrift TException: " + thriftException.getMessage());
+
+ // Test that gson is not relocated.
+ Gson gson = new Gson();
+ logger.info("Gson: " + gson);
+
+ // Test that flatbuffers is not relocated.
+ FlatBufferBuilder flatBuilder = new FlatBufferBuilder();
+ logger.info("FlatBuffers: " + flatBuilder);
+
+ // Test that netty is not relocated.
+ ByteBufAllocator nettyAllocator = ByteBufAllocator.DEFAULT;
+ logger.info("Netty ByteBufAllocator: " + nettyAllocator);
+
+ // Test that grpc is not relocated.
+ Context grpcContext = Context.current();
+ logger.info("gRPC Context: " + grpcContext);
+
+ // Test that bouncycastle is not relocated.
+ BouncyCastleProvider bcProvider = new BouncyCastleProvider();
+ logger.info("BouncyCastle Provider: " + bcProvider.getName());
+
+ // Test that resilience4j is not relocated.
+ CircuitBreakerConfig cbConfig = CircuitBreakerConfig.ofDefaults();
+ logger.info("Resilience4j CircuitBreakerConfig: " + cbConfig);
+
+ // Test that vavr is not relocated.
+ List vavrList = List.of("test");
+ logger.info("Vavr List: " + vavrList);
+
+ // Test that JTS is not relocated.
+ GeometryFactory jtsFactory = new GeometryFactory();
+ logger.info("JTS GeometryFactory: " + jtsFactory);
+
+ // Test that Databricks SDK is not relocated.
+ Class> sdkClass = DatabricksConfig.class;
+ logger.info("Databricks SDK class: " + sdkClass.getName());
+
+ // Test that JSON is not relocated.
+ JSONObject jsonObject = new JSONObject().put("key", "value");
+ logger.info("JSON object: " + jsonObject);
+
+ // Test that Nimbus JOSE JWT is not relocated.
+ JWSAlgorithm jwsAlgorithm = JWSAlgorithm.HS256;
+ logger.info("Nimbus JWSAlgorithm: " + jwsAlgorithm);
+ }
+
+ /** Test large query execution with Arrow result format works. */
+ @Test
+ public void executeLargeQuery() throws SQLException {
+ Map params = new HashMap<>();
+ params.put(DatabricksJdbcUrlParams.ENABLE_ARROW.getParamName(), "1");
+ params.put(DatabricksJdbcUrlParams.USE_THRIFT_CLIENT.getParamName(), "0");
+
+ try (Connection connection = connect(params)) {
+ try (Statement statement = connection.createStatement()) {
+ final String sql = "SELECT * FROM samples.tpch.lineitem where 1 = 0";
+ ResultSet result = statement.executeQuery(sql);
+ int totalRows = 0;
+ while (result.next()) {
+ if (totalRows % 100_000 == 0) {
+ logger.info("Processed " + totalRows + " rows");
+ }
+ totalRows++;
+ }
+
+ logger.info("Total " + totalRows + " rows processed");
+ }
+ }
+ }
+
+ private Connection connect(Map urlParams) throws SQLException {
+ Properties props = new Properties();
+ props.setProperty("user", getDatabricksUser());
+ props.setProperty("password", getDatabricksToken());
+ for (Map.Entry entry : urlParams.entrySet()) {
+ props.setProperty(entry.getKey(), entry.getValue().toString());
+ }
+
+ String url = getDogfoodJDBCUrl();
+
+ return new com.databricks.client.jdbc.Driver().connect(url, props);
+ }
+
+ private String getDogfoodJDBCUrl() {
+ String template =
+ "jdbc:databricks://%s/default;transportMode=http;ssl=1;AuthMech=3;httpPath=%s";
+ String host = getDatabricksHost();
+ String httpPath = getDatabricksHttpPath();
+
+ return String.format(template, host, httpPath);
+ }
+
+ private String getDatabricksHttpPath() {
+ return System.getenv("DATABRICKS_HTTP_PATH");
+ }
+
+ private String getDatabricksHost() {
+ return System.getenv("DATABRICKS_HOST");
+ }
+
+ private String getDatabricksUser() {
+ return Optional.ofNullable(System.getenv("DATABRICKS_USER")).orElse("token");
+ }
+
+ private String getDatabricksToken() {
+ return System.getenv("DATABRICKS_TOKEN");
+ }
+}
diff --git a/test-assembly-uber/pom.xml b/test-assembly-uber/pom.xml
new file mode 100644
index 0000000000..0d140c8416
--- /dev/null
+++ b/test-assembly-uber/pom.xml
@@ -0,0 +1,31 @@
+
+
+ 4.0.0
+
+
+ com.databricks
+ databricks-jdbc-parent
+ 3.2.2-SNAPSHOT
+
+
+ test-databricks-jdbc-uber
+ jar
+ Test Uber
+ Test JDBC databricks driver uber jar.
+
+
+
+ com.databricks
+ databricks-jdbc
+ 3.2.2-SNAPSHOT
+
+
+ org.junit.jupiter
+ junit-jupiter
+ ${junit.jupiter.version}
+ test
+
+
+
\ No newline at end of file
diff --git a/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java b/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java
new file mode 100644
index 0000000000..b8254cec38
--- /dev/null
+++ b/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java
@@ -0,0 +1,204 @@
+package com.databricks.jdbc;
+
+import com.databricks.internal.apache.commons.codec.binary.Base64;
+import com.databricks.internal.apache.commons.io.IOUtils;
+import com.databricks.internal.apache.commons.lang3.StringUtils;
+import com.databricks.internal.apache.hc.client5.http.impl.classic.HttpClientBuilder;
+import com.databricks.internal.apache.hc.client5.http.impl.classic.HttpClients;
+import com.databricks.internal.apache.hc.core5.http.HttpStatus;
+import com.databricks.internal.apache.thrift.TException;
+import com.databricks.internal.bouncycastle.jce.provider.BouncyCastleProvider;
+import com.databricks.internal.fasterxml.jackson.databind.ObjectMapper;
+import com.databricks.internal.google.common.collect.ImmutableList;
+import com.databricks.internal.google.flatbuffers.FlatBufferBuilder;
+import com.databricks.internal.google.gson.Gson;
+import com.databricks.internal.google.protobuf.ByteString;
+import com.databricks.internal.io.github.resilience4j.circuitbreaker.CircuitBreakerConfig;
+import com.databricks.internal.io.grpc.Context;
+import com.databricks.internal.io.netty.buffer.ByteBufAllocator;
+import com.databricks.internal.io.vavr.collection.List;
+import com.databricks.internal.json.JSONObject;
+import com.databricks.internal.jts.geom.GeometryFactory;
+import com.databricks.internal.nimbusds.jose.JWSAlgorithm;
+import com.databricks.internal.sdk.core.DatabricksConfig;
+import com.databricks.jdbc.api.impl.arrow.ArrowBufferAllocator;
+import com.databricks.jdbc.common.DatabricksJdbcUrlParams;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Properties;
+import java.util.logging.Logger;
+import org.junit.jupiter.api.Test;
+
+/** Test artifacts are packaged properly. */
+public class TestUberPackaging {
+ /** Logger instance. */
+ private static final java.util.logging.Logger logger =
+ Logger.getLogger(TestUberPackaging.class.getName());
+
+ /** Test packages are shaded as expected. */
+ @Test
+ public void testThinPackaging() {
+ // Test that the "arrow" package is relocated.
+ com.databricks.internal.apache.arrow.memory.BufferAllocator bufferAllocator =
+ ArrowBufferAllocator.getBufferAllocator();
+ logger.info("Shaded buffer allocator " + bufferAllocator);
+
+ // Test that jackson packages are relocated.
+ ObjectMapper jacksonMapper = new ObjectMapper();
+ logger.info("Shaded Jackson ObjectMapper: " + jacksonMapper);
+
+ // Test that guava is relocated.
+ ImmutableList guavaList = ImmutableList.of("test");
+ logger.info("Shaded Guava ImmutableList: " + guavaList);
+
+ // Test that protobuf is relocated.
+ ByteString protoByteString = ByteString.copyFromUtf8("test");
+ logger.info("Shaded Protobuf ByteString: " + protoByteString);
+
+ // Test that commons-lang3 is relocated.
+ String commonsResult = StringUtils.upperCase("test");
+ logger.info("Shaded Commons-Lang3 result: " + commonsResult);
+
+ // Test that commons-codec is relocated (org.apache.commons.codec ->
+ // com.databricks.internal.apache.commons.codec).
+ byte[] commonsCodec = Base64.encodeBase64("test".getBytes());
+ logger.info("Shaded Commons-Codec Base64: " + new String(commonsCodec));
+
+ // Test that commons-io is relocated.
+ try {
+ String commonsIo = IOUtils.toString(new ByteArrayInputStream("test".getBytes()), "UTF-8");
+ logger.info("Shaded Commons-IO result: " + commonsIo);
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to test Commons-IO shading", e);
+ }
+
+ // Test that httpclient5 is relocated (org.apache.hc.client5 ->
+ // com.databricks.internal.apache.hc.client5).
+ HttpClientBuilder httpClientBuilder = HttpClients.custom();
+ logger.info("Shaded HttpClient5 builder: " + httpClientBuilder);
+
+ // Test that httpcore5 is relocated (org.apache.hc.core5 ->
+ // com.databricks.internal.apache.hc.core5).
+ int httpStatus = HttpStatus.SC_OK;
+ logger.info("Shaded HttpCore5 status: " + httpStatus);
+
+ // Test that thrift is relocated.
+ TException thriftException = new TException("test");
+ logger.info("Shaded Thrift TException: " + thriftException.getMessage());
+
+ // Test that gson is relocated.
+ Gson gson = new Gson();
+ logger.info("Shaded Gson: " + gson);
+
+ // Test that flatbuffers is relocated.
+ FlatBufferBuilder flatBuilder = new FlatBufferBuilder();
+ logger.info("Shaded FlatBuffers: " + flatBuilder);
+
+ // Test that netty is relocated (io.netty -> com.databricks.internal.io.netty).
+ ByteBufAllocator nettyAllocator = ByteBufAllocator.DEFAULT;
+ logger.info("Shaded Netty ByteBufAllocator: " + nettyAllocator);
+
+ // Test that grpc is relocated (io.grpc -> com.databricks.internal.io.grpc).
+ Context grpcContext = Context.current();
+ logger.info("Shaded gRPC Context: " + grpcContext);
+
+ // Test that bouncycastle is relocated (org.bouncycastle ->
+ // com.databricks.internal.bouncycastle).
+ BouncyCastleProvider bcProvider = new BouncyCastleProvider();
+ logger.info("Shaded BouncyCastle Provider: " + bcProvider.getName());
+
+ // Test that resilience4j is relocated (io.github.resilience4j ->
+ // com.databricks.internal.io.github.resilience4j).
+ CircuitBreakerConfig cbConfig = CircuitBreakerConfig.ofDefaults();
+ logger.info("Shaded Resilience4j CircuitBreakerConfig: " + cbConfig);
+
+ // Test that vavr is relocated (io.vavr -> com.databricks.internal.io.vavr).
+ List vavrList = List.of("test");
+ logger.info("Shaded Vavr List: " + vavrList);
+
+ // Test that JTS is relocated (org.locationtech.jts -> com.databricks.internal.jts).
+ GeometryFactory jtsFactory = new GeometryFactory();
+ logger.info("Shaded JTS GeometryFactory: " + jtsFactory);
+
+ // Test that Databricks SDK is relocated (com.databricks.sdk -> com.databricks.internal.sdk).
+ Class> sdkClass = DatabricksConfig.class;
+ logger.info("Shaded Databricks SDK class: " + sdkClass.getName());
+
+ // Test that JSON is relocated (org.json -> com.databricks.internal.json).
+ JSONObject jsonObject = new JSONObject().put("key", "value");
+ logger.info("Shaded JSON object: " + jsonObject);
+
+ // Test that Nimbus JOSE JWT is relocated (com.nimbusds -> com.databricks.internal.nimbusds).
+ JWSAlgorithm jwsAlgorithm = JWSAlgorithm.HS256;
+ logger.info("Shaded Nimbus JWSAlgorithm: " + jwsAlgorithm);
+ }
+
+ /** Test large query execution with Arrow result format works. */
+ @Test
+ public void executeLargeQuery() throws SQLException {
+ Map params = new HashMap<>();
+ params.put(DatabricksJdbcUrlParams.ENABLE_ARROW.getParamName(), "1");
+ params.put(DatabricksJdbcUrlParams.USE_THRIFT_CLIENT.getParamName(), "0");
+
+ try (Connection connection = connect(params)) {
+ try (Statement statement = connection.createStatement()) {
+ final String sql = "SELECT * FROM samples.tpch.lineitem where 1 = 0";
+ ResultSet result = statement.executeQuery(sql);
+ int totalRows = 0;
+ while (result.next()) {
+ if (totalRows % 100_000 == 0) {
+ logger.info("Processed " + totalRows + " rows");
+ }
+ totalRows++;
+ }
+
+ logger.info("Total " + totalRows + " rows processed");
+ }
+ }
+ }
+
+ private Connection connect(Map urlParams) throws SQLException {
+ Properties props = new Properties();
+ props.setProperty("user", getDatabricksUser());
+ props.setProperty("password", getDatabricksToken());
+ for (Map.Entry entry : urlParams.entrySet()) {
+ props.setProperty(entry.getKey(), entry.getValue().toString());
+ }
+
+ String url = getDogfoodJDBCUrl();
+
+ return new com.databricks.client.jdbc.Driver().connect(url, props);
+ }
+
+ private String getDogfoodJDBCUrl() {
+ String template =
+ "jdbc:databricks://%s/default;transportMode=http;ssl=1;AuthMech=3;httpPath=%s";
+ String host = getDatabricksHost();
+ String httpPath = getDatabricksHttpPath();
+
+ return String.format(template, host, httpPath);
+ }
+
+ private String getDatabricksHttpPath() {
+ return System.getenv("DATABRICKS_HTTP_PATH");
+ }
+
+ private String getDatabricksHost() {
+ return System.getenv("DATABRICKS_HOST");
+ }
+
+ private String getDatabricksUser() {
+ return Optional.ofNullable(System.getenv("DATABRICKS_USER")).orElse("token");
+ }
+
+ private String getDatabricksToken() {
+ return System.getenv("DATABRICKS_TOKEN");
+ }
+}
diff --git a/thin_public_pom.xml b/thin_public_pom.xml
deleted file mode 100644
index 5b2afec7f2..0000000000
--- a/thin_public_pom.xml
+++ /dev/null
@@ -1,214 +0,0 @@
-
-
- 4.0.0
- com.databricks
- databricks-jdbc-thin
- 3.1.2
- jar
- Databricks JDBC Driver Thin
- Databricks JDBC Driver Thin JAR - requires external dependencies.
- https://github.com/databricks/databricks-jdbc
-
-
-
- Apache License, Version 2.0
- https://github.com/databricks/databricks-jdbc/blob/main/LICENSE
-
-
-
-
-
- Databricks JDBC Team
- eng-oss-sql-driver@databricks.com
- Databricks
- https://www.databricks.com
-
-
-
-
- scm:git:https://github.com/databricks/databricks-jdbc.git
- scm:git:https://github.com/databricks/databricks-jdbc.git
- https://github.com/databricks/databricks-jdbc
-
-
-
- GitHub Issues
- https://github.com/databricks/databricks-jdbc/issues
-
-
-
-
-
- com.databricks
- databricks-sdk-java
- 0.69.0
-
-
-
-
- org.apache.commons
- commons-lang3
- 3.18.0
-
-
- org.apache.commons
- commons-configuration2
- 2.10.1
-
-
- commons-io
- commons-io
- 2.14.0
-
-
-
-
- org.apache.arrow
- arrow-memory-core
- 17.0.0
-
-
- org.apache.arrow
- arrow-memory-unsafe
- 17.0.0
-
-
- org.apache.arrow
- arrow-vector
- 17.0.0
-
-
- org.apache.arrow
- arrow-memory-netty
- 17.0.0
-
-
-
-
- org.apache.httpcomponents
- httpclient
- 4.5.14
-
-
- org.apache.httpcomponents.client5
- httpclient5
- 5.3.1
-
-
- org.apache.httpcomponents.core5
- httpcore5
- 5.3.1
-
-
-
-
- org.apache.thrift
- libthrift
- 0.19.0
-
-
-
-
- org.slf4j
- slf4j-api
- 2.0.13
-
-
-
-
- com.google.code.findbugs
- annotations
- 3.0.1
-
-
- com.google.guava
- guava
- 33.0.0-jre
-
-
-
-
- com.nimbusds
- nimbus-jose-jwt
- 10.0.2
-
-
- org.bouncycastle
- bcprov-jdk18on
- 1.79
-
-
- org.bouncycastle
- bcpkix-jdk18on
- 1.79
-
-
-
-
- com.fasterxml.jackson.core
- jackson-databind
- 2.18.3
-
-
- com.fasterxml.jackson.core
- jackson-annotations
- 2.18.3
-
-
- com.fasterxml.jackson.core
- jackson-core
- 2.18.3
-
-
- com.google.code.gson
- gson
- 2.13.2
-
-
-
-
- at.yawk.lz4
- lz4-java
- 1.10.1
-
-
-
-
- io.grpc
- grpc-context
- 1.71.0
-
-
-
-
- io.netty
- netty-common
- 4.2.6.Final
-
-
- io.netty
- netty-buffer
- 4.2.6.Final
-
-
-
-
- jakarta.annotation
- jakarta.annotation-api
- 1.3.5
-
-
-
-
- io.github.resilience4j
- resilience4j-circuitbreaker
- 1.7.0
-
-
- io.github.resilience4j
- resilience4j-core
- 1.7.0
-
-
-
\ No newline at end of file
diff --git a/uber-minimal-pom.xml b/uber-minimal-pom.xml
deleted file mode 100644
index b2bd5cbe90..0000000000
--- a/uber-minimal-pom.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
- 4.0.0
- com.databricks
- databricks-jdbc
-
- 3.2.1
- jar
- Databricks JDBC Driver
- Databricks JDBC Driver.
- https://github.com/databricks/databricks-jdbc
-
-
- Apache License, Version 2.0
- https://github.com/databricks/databricks-jdbc/blob/main/LICENSE
-
-
-
-
- Databricks JDBC Team
- eng-oss-sql-driver@databricks.com
- Databricks
- https://www.databricks.com
-
-
-
- scm:git:https://github.com/databricks/databricks-jdbc.git
- scm:git:https://github.com/databricks/databricks-jdbc.git
- https://github.com/databricks/databricks-jdbc
-
-
- GitHub Issues
- https://github.com/databricks/databricks-jdbc/issues
-
-