diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 71b5e423b97f..c18fb09bdea9 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -34,322 +34,14 @@ concurrency:
cancel-in-progress: true
jobs:
- maven-checks:
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- java-version:
- - 11
- - 17
- timeout-minutes: 45
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-java@v2
- with:
- distribution: 'zulu'
- java-version: ${{ matrix.java-version }}
- cache: 'maven'
- - name: Configure Problem Matchers
- run: |
- echo "::add-matcher::.github/problem-matcher.json"
- - name: Maven Checks
- run: |
- export MAVEN_OPTS="${MAVEN_INSTALL_OPTS}"
- $RETRY $MAVEN install -B --strict-checksums -V -T C1 -DskipTests -P ci -pl '!:trino-server-rpm'
- - name: Test Server RPM
- run: |
- export MAVEN_OPTS="${MAVEN_INSTALL_OPTS}"
- $RETRY bash -c "$MAVEN verify -B --strict-checksums -P ci -pl :trino-server-rpm || find core/trino-server-rpm/ -exec ls -ald {} +"
- - name: Clean Maven Output
- run: $MAVEN clean -pl '!:trino-server,!:trino-cli'
- - uses: docker/setup-qemu-action@v1
- with:
- platforms: arm64
- - name: Test Docker Image
- run: core/docker/build-local.sh
-
- error-prone-checks:
- runs-on: ubuntu-latest
- timeout-minutes: 45
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-java@v2
- with:
- distribution: 'zulu'
- java-version: 11
- cache: 'maven'
- - name: Configure Problem Matchers
- run: |
- echo "::add-matcher::.github/problem-matcher.json"
- - name: Maven Install
- run: |
- export MAVEN_OPTS="${MAVEN_INSTALL_OPTS}"
- $RETRY $MAVEN install ${MAVEN_FAST_INSTALL} -pl '!:trino-docs,!:trino-server,!:trino-server-rpm'
- - name: Error Prone Checks
- run: |
- export MAVEN_OPTS="${MAVEN_INSTALL_OPTS}"
- # Run Error Prone on one module with a retry to ensure all runtime dependencies are fetched
- $RETRY $MAVEN ${MAVEN_TEST} -T C1 clean test-compile -P errorprone-compiler -pl ':trino-spi'
- # The main Error Prone run
- $MAVEN ${MAVEN_TEST} -T C1 clean test-compile -P errorprone-compiler \
- -pl '!:trino-docs,!:trino-server,!:trino-server-rpm'
-
- web-ui-checks:
- runs-on: ubuntu-latest
- timeout-minutes: 30
- steps:
- - uses: actions/checkout@v2
- - name: Web UI Checks
- run: core/trino-main/bin/check_webui.sh
-
- test-jdbc-compatibility:
- runs-on: ubuntu-latest
- timeout-minutes: 30
- steps:
- - uses: actions/checkout@v2
- with:
- fetch-depth: 0 # checkout tags so version in Manifest is set properly
- - uses: actions/setup-java@v2
- with:
- distribution: 'zulu'
- java-version: 11
- cache: 'maven'
- - name: Configure Problem Matchers
- run: |
- echo "::add-matcher::.github/problem-matcher.json"
- - name: Maven Install
- run: |
- export MAVEN_OPTS="${MAVEN_INSTALL_OPTS}"
- $RETRY $MAVEN install ${MAVEN_FAST_INSTALL} -pl '!:trino-test-jdbc-compatibility-old-driver,!:trino-docs,!:trino-server,!:trino-server-rpm'
- - name: Test old JDBC vs current server
- run: testing/trino-test-jdbc-compatibility-old-driver/bin/run_tests.sh
- - name: Test current JDBC vs old server
- if: always()
- run: $MAVEN test ${MAVEN_TEST} -pl :trino-test-jdbc-compatibility-old-server
- - name: Upload test results
- uses: actions/upload-artifact@v2
- # Upload all test reports only on failure, because the artifacts are large
- if: failure()
- with:
- name: result ${{ github.job }}
- path: |
- **/target/surefire-reports
- **/target/checkstyle-*
- - name: Upload test report
- uses: actions/upload-artifact@v2
- # Always upload the test report for the annotate.yml workflow,
- # but only the single XML file to keep the artifact small
- if: always()
- with:
- # Name prefix is checked in the `Annotate checks` workflow
- name: test report ${{ github.job }}
- path: |
- **/surefire-reports/TEST-*.xml
- retention-days: ${{ env.TEST_REPORT_RETENTION_DAYS }}
-
- hive-tests:
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- config:
- - config-empty
- - config-hdp3
- # TODO: config-cdh5
- # TODO: config-apache-hive3
- timeout-minutes: 60
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-java@v2
- with:
- distribution: 'zulu'
- java-version: 11
- cache: 'maven'
- - name: Configure Problem Matchers
- run: |
- echo "::add-matcher::.github/problem-matcher.json"
- - name: Install Hive Module
- run: |
- export MAVEN_OPTS="${MAVEN_INSTALL_OPTS}"
- $RETRY $MAVEN install ${MAVEN_FAST_INSTALL} -am -pl :trino-hive-hadoop2
- - name: Run Hive Tests
- run: |
- source plugin/trino-hive-hadoop2/conf/hive-tests-${{ matrix.config }}.sh &&
- plugin/trino-hive-hadoop2/bin/run_hive_tests.sh
- - name: Run Hive S3 Tests
- env:
- AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESSKEY }}
- AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRETKEY }}
- S3_BUCKET: "presto-ci-test"
- S3_BUCKET_ENDPOINT: "s3.us-east-2.amazonaws.com"
- run: |
- if [ "${AWS_ACCESS_KEY_ID}" != "" ]; then
- source plugin/trino-hive-hadoop2/conf/hive-tests-${{ matrix.config }}.sh &&
- plugin/trino-hive-hadoop2/bin/run_hive_s3_tests.sh
- fi
- - name: Run Hive Glue Tests
- env:
- AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESSKEY }}
- AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRETKEY }}
- AWS_REGION: us-east-2
- run: |
- if [ "${AWS_ACCESS_KEY_ID}" != "" ]; then
- $MAVEN test ${MAVEN_TEST} -pl :trino-hive -P test-hive-glue
- fi
- - name: Run Hive Azure ABFS Access Key Tests
- if: matrix.config != 'config-empty' # Hive 1.x does not support Azure storage
- env:
- ABFS_CONTAINER: ${{ secrets.AZURE_ABFS_CONTAINER }}
- ABFS_ACCOUNT: ${{ secrets.AZURE_ABFS_ACCOUNT }}
- ABFS_ACCESS_KEY: ${{ secrets.AZURE_ABFS_ACCESSKEY }}
- run: |
- if [ "${ABFS_CONTAINER}" != "" ]; then
- source plugin/trino-hive-hadoop2/conf/hive-tests-${{ matrix.config }}.sh &&
- plugin/trino-hive-hadoop2/bin/run_hive_abfs_access_key_tests.sh
- fi
- - name: Run Hive Azure ABFS OAuth Tests
- if: matrix.config != 'config-empty' # Hive 1.x does not support Azure storage
- env:
- ABFS_CONTAINER: ${{ secrets.AZURE_ABFS_CONTAINER }}
- ABFS_ACCOUNT: ${{ secrets.AZURE_ABFS_ACCOUNT }}
- ABFS_OAUTH_ENDPOINT: ${{ secrets.AZURE_ABFS_OAUTH_ENDPOINT }}
- ABFS_OAUTH_CLIENTID: ${{ secrets.AZURE_ABFS_OAUTH_CLIENTID }}
- ABFS_OAUTH_SECRET: ${{ secrets.AZURE_ABFS_OAUTH_SECRET }}
- run: |
- if [ -n "$ABFS_CONTAINER" ]; then
- source plugin/trino-hive-hadoop2/conf/hive-tests-${{ matrix.config }}.sh &&
- plugin/trino-hive-hadoop2/bin/run_hive_abfs_oauth_tests.sh
- fi
- - name: Run Hive Azure WASB Tests
- if: matrix.config != 'config-empty' # Hive 1.x does not support Azure storage
- env:
- WASB_CONTAINER: ${{ secrets.AZURE_WASB_CONTAINER }}
- WASB_ACCOUNT: ${{ secrets.AZURE_WASB_ACCOUNT }}
- WASB_ACCESS_KEY: ${{ secrets.AZURE_WASB_ACCESSKEY }}
- run: |
- if [ "${WASB_CONTAINER}" != "" ]; then
- source plugin/trino-hive-hadoop2/conf/hive-tests-${{ matrix.config }}.sh &&
- plugin/trino-hive-hadoop2/bin/run_hive_wasb_tests.sh
- fi
- - name: Run Hive Azure ADL Tests
- if: matrix.config != 'config-empty' # Hive 1.x does not support Azure storage
- env:
- ADL_NAME: ${{ secrets.AZURE_ADL_NAME }}
- ADL_CLIENT_ID: ${{ secrets.AZURE_ADL_CLIENTID }}
- ADL_CREDENTIAL: ${{ secrets.AZURE_ADL_CREDENTIAL }}
- ADL_REFRESH_URL: ${{ secrets.AZURE_ADL_REFRESHURL }}
- run: |
- if [ "${ADL_NAME}" != "" ]; then
- source plugin/trino-hive-hadoop2/conf/hive-tests-${{ matrix.config }}.sh &&
- plugin/trino-hive-hadoop2/bin/run_hive_adl_tests.sh
- fi
- - name: Run Hive Alluxio Tests
- run: |
- source plugin/trino-hive-hadoop2/conf/hive-tests-${{ matrix.config }}.sh &&
- plugin/trino-hive-hadoop2/bin/run_hive_alluxio_tests.sh
- - name: Upload test results
- uses: actions/upload-artifact@v2
- # Upload all test reports only on failure, because the artifacts are large
- if: failure()
- with:
- name: result ${{ github.job }}
- path: |
- **/target/surefire-reports
- **/target/checkstyle-*
- - name: Upload test report
- uses: actions/upload-artifact@v2
- # Always upload the test report for the annotate.yml workflow,
- # but only the single XML file to keep the artifact small
- if: always()
- with:
- # Name prefix is checked in the `Annotate checks` workflow
- name: test report ${{ github.job }} (${{ matrix.config }})
- path: |
- **/surefire-reports/TEST-*.xml
- retention-days: ${{ env.TEST_REPORT_RETENTION_DAYS }}
-
- test-other-modules:
- runs-on: ubuntu-latest
- timeout-minutes: 60
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-java@v2
- with:
- distribution: 'zulu'
- java-version: 11
- cache: 'maven'
- - name: Configure Problem Matchers
- run: |
- echo "::add-matcher::.github/problem-matcher.json"
- - name: Maven Install
- run: |
- export MAVEN_OPTS="${MAVEN_INSTALL_OPTS}"
- $RETRY $MAVEN install ${MAVEN_FAST_INSTALL} -pl '!:trino-docs,!:trino-server,!:trino-server-rpm'
- - name: Maven Tests
- run: |
- $MAVEN test ${MAVEN_TEST} -pl '
- !:trino-main,
- !:trino-tests,
- !:trino-raptor-legacy,
- !:trino-accumulo,
- !:trino-cassandra,
- !:trino-clickhouse,
- !:trino-hive,!:trino-orc,!:trino-parquet,
- !:trino-mongodb,!:trino-kafka,!:trino-elasticsearch,
- !:trino-redis,
- !:trino-sqlserver,!:trino-postgresql,!:trino-mysql,!:trino-memsql,
- !:trino-oracle,
- !:trino-kudu,
- !:trino-iceberg,!:trino-druid,
- !:trino-phoenix,!:trino-phoenix5,
- !:trino-docs,!:trino-server,!:trino-server-rpm,
- !:trino-test-jdbc-compatibility-old-server,
- !:trino-bigquery'
- - name: Upload test results
- uses: actions/upload-artifact@v2
- # Upload all test reports only on failure, because the artifacts are large
- if: failure()
- with:
- name: result ${{ github.job }}
- path: |
- **/target/surefire-reports
- **/target/checkstyle-*
- - name: Upload test report
- uses: actions/upload-artifact@v2
- # Always upload the test report for the annotate.yml workflow,
- # but only the single XML file to keep the artifact small
- if: always()
- with:
- # Name prefix is checked in the `Annotate checks` workflow
- name: test report ${{ github.job }}
- path: |
- **/surefire-reports/TEST-*.xml
- retention-days: ${{ env.TEST_REPORT_RETENTION_DAYS }}
-
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
modules:
- - ":trino-main"
- - ":trino-tests"
- - ":trino-raptor-legacy"
- - ":trino-accumulo"
- - ":trino-cassandra"
- ":trino-clickhouse"
- - ":trino-hive,:trino-orc"
- - ":trino-hive,:trino-parquet -P test-parquet"
- - ":trino-hive -P test-failure-recovery"
- - ":trino-mongodb,:trino-kafka,:trino-elasticsearch"
- - ":trino-elasticsearch -P test-stats"
- - ":trino-redis"
- - ":trino-sqlserver,:trino-postgresql,:trino-mysql"
- - ":trino-oracle"
- - ":trino-kudu"
- - ":trino-iceberg,:trino-druid"
- - ":trino-phoenix,:trino-phoenix5"
+ i: [0, 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]
timeout-minutes: 60
steps:
- uses: actions/checkout@v2
@@ -395,235 +87,3 @@ jobs:
path: |
**/surefire-reports/TEST-*.xml
retention-days: ${{ env.TEST_REPORT_RETENTION_DAYS }}
-
- test-memsql:
- runs-on: ubuntu-latest
- timeout-minutes: 30
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-java@v2
- with:
- distribution: 'zulu'
- java-version: 11
- cache: 'maven'
- - name: Configure Problem Matchers
- run: |
- echo "::add-matcher::.github/problem-matcher.json"
- - name: Cleanup node
- # This is required as a virtual environment update 20210219.1 left too little space for MemSQL to work
- run: .github/bin/cleanup-node.sh
- - name: Maven Install
- run: |
- export MAVEN_OPTS="${MAVEN_INSTALL_OPTS}"
- $RETRY $MAVEN install ${MAVEN_FAST_INSTALL} -am -pl :trino-memsql
- - name: Memsql Tests
- env:
- MEMSQL_LICENSE: ${{ secrets.MEMSQL_LICENSE }}
- run: |
- if [ "${MEMSQL_LICENSE}" != "" ]; then
- $MAVEN test ${MAVEN_TEST} -pl :trino-memsql -Dmemsql.license=${MEMSQL_LICENSE}
- fi
- - name: Upload test results
- uses: actions/upload-artifact@v2
- # Upload all test reports only on failure, because the artifacts are large
- if: failure()
- with:
- name: result ${{ github.job }}
- path: |
- **/target/surefire-reports
- **/target/checkstyle-*
- - name: Upload test report
- uses: actions/upload-artifact@v2
- # Always upload the test report for the annotate.yml workflow,
- # but only the single XML file to keep the artifact small
- if: always()
- with:
- # Name prefix is checked in the `Annotate checks` workflow
- name: test report ${{ github.job }}
- path: |
- **/surefire-reports/TEST-*.xml
- retention-days: ${{ env.TEST_REPORT_RETENTION_DAYS }}
-
- test-bigquery:
- runs-on: ubuntu-latest
- timeout-minutes: 30
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-java@v2
- with:
- distribution: 'zulu'
- java-version: 11
- cache: 'maven'
- - name: Configure Problem Matchers
- run: |
- echo "::add-matcher::.github/problem-matcher.json"
- - name: Maven Install
- run: |
- export MAVEN_OPTS="${MAVEN_INSTALL_OPTS}"
- $RETRY $MAVEN install ${MAVEN_FAST_INSTALL} -am -pl :trino-bigquery
- - name: Basic BigQuery Tests
- run: $MAVEN test ${MAVEN_TEST} -pl :trino-bigquery
- - name: Cloud BigQuery Tests
- env:
- BIGQUERY_CREDENTIALS_KEY: ${{ secrets.BIGQUERY_CREDENTIALS_KEY }}
- run: |
- if [ "${BIGQUERY_CREDENTIALS_KEY}" != "" ]; then
- $MAVEN test ${MAVEN_TEST} -pl :trino-bigquery -Pcloud-tests -Dbigquery.credentials-key="${BIGQUERY_CREDENTIALS_KEY}"
- fi
- - name: Cloud BigQuery Case Insensitive Mapping Tests
- env:
- BIGQUERY_CREDENTIALS_KEY: ${{ secrets.BIGQUERY_CASE_INSENSITIVE_CREDENTIALS_KEY }}
- run: |
- if [ "${BIGQUERY_CREDENTIALS_KEY}" != "" ]; then
- $MAVEN test ${MAVEN_TEST} -pl :trino-bigquery -Pcloud-tests-case-insensitive-mapping -Dbigquery.credentials-key="${BIGQUERY_CREDENTIALS_KEY}"
- fi
- - name: Upload test results
- uses: actions/upload-artifact@v2
- # Upload all test reports only on failure, because the artifacts are large
- if: failure()
- with:
- name: result ${{ github.job }}
- path: |
- **/target/surefire-reports
- **/target/checkstyle-*
- - name: Upload test report
- uses: actions/upload-artifact@v2
- # Always upload the test report for the annotate.yml workflow,
- # but only the single XML file to keep the artifact small
- if: always()
- with:
- # Name prefix is checked in the `Annotate checks` workflow
- name: test report ${{ github.job }}
- path: |
- **/surefire-reports/TEST-*.xml
- retention-days: ${{ env.TEST_REPORT_RETENTION_DAYS }}
-
- pt:
- runs-on: ubuntu-latest
- # explicitly define the name to avoid adding the value of the `ignore exclusion if` matrix item
- name: pt (${{ matrix.config }}, ${{ matrix.suite }}, ${{ matrix.jdk }})
- strategy:
- fail-fast: false
- matrix:
- config:
- - default
- - hdp3
- - cdh5
- # TODO: config-apache-hive3
- suite:
- - suite-1
- - suite-2
- - suite-3
- # suite-4 does not exist
- - suite-5
- jdk:
- - 11
- exclude:
- - config: cdh5
- ignore exclusion if: >-
- ${{ github.event_name != 'pull_request'
- || contains(github.event.pull_request.labels.*.name, 'tests:all')
- || contains(github.event.pull_request.labels.*.name, 'tests:hive')
- }}
-
- - config: default
- ignore exclusion if: >-
- ${{ github.event_name != 'pull_request'
- || contains(github.event.pull_request.labels.*.name, 'tests:all')
- || contains(github.event.pull_request.labels.*.name, 'tests:hive')
- }}
-
- ignore exclusion if:
- # Do not use this property outside of the matrix configuration.
- #
- # This is added to all matrix entries so they may be conditionally
- # excluded by adding them to the excludes list with a GHA expression
- # for this property.
- # - If the expression evaluates to true, it will never match the a
- # actual value of the property, and will therefore not be excluded.
- # - If the expression evaluates to false, it will match the actual
- # value of the property, and the exclusion will apply normally.
- - false
- include:
- # this suite is not meant to be run with different configs
- - config: default
- suite: suite-6-non-generic
- jdk: 11
- # this suite is not meant to be run with different configs
- - config: default
- suite: suite-7-non-generic
- jdk: 11
- # this suite is not meant to be run with different configs
- - config: default
- suite: suite-8-non-generic
- jdk: 11
- # this suite is not meant to be run with different configs
- - config: default
- suite: suite-tpcds
- jdk: 11
- # this suite is not meant to be run with different configs
- - config: default
- suite: suite-oauth2
- jdk: 11
- # this suite is not meant to be run with different configs
- - config: default
- suite: suite-ldap
- jdk: 11
- # this suite is not meant to be run with different configs
- - config: default
- suite: suite-compatibility
- jdk: 11
- # this suite is designed specifically for apache-hive3. TODO remove the suite once we can run all regular tests on apache-hive3.
- - config: apache-hive3
- suite: suite-hms-only
- jdk: 11
- # suite-1 does not contain Kerberos/encrypted Hive environments
- - config: hdp3
- suite: suite-1
- jdk: 17
- # suite-2 contains Kerberos/encrypted Hive environments
- - config: hdp3
- suite: suite-2
- jdk: 17
- # PT Launcher's timeout defaults to 2h, account for preparation steps (compilation) and add some margin
- timeout-minutes: 140
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-java@v2
- with:
- distribution: 'zulu'
- java-version: 11
- cache: 'maven'
- - name: Maven Install
- run: |
- export MAVEN_OPTS="${MAVEN_INSTALL_OPTS}"
- $RETRY $MAVEN install ${MAVEN_FAST_INSTALL} -pl '!:trino-docs,!:trino-server-rpm'
- - name: Free Disk Space
- run: |
- docker image prune -af
- sudo apt-get clean
- rm -rf ~/.m2/repository
- - name: Product Tests
- run: |
- testing/bin/ptl suite run \
- --suite ${{ matrix.suite }} --config config-${{ matrix.config }} --bind=off --logs-dir logs/ --timeout 2h \
- --trino-jdk-version zulu_${{ matrix.jdk }}
- - name: Upload test logs and results
- uses: actions/upload-artifact@v2
- # Upload all test reports only on failure, because the artifacts are large
- if: failure()
- with:
- name: result pt (${{ matrix.config }}, ${{ matrix.suite }}, ${{ matrix.jdk }})
- path: |
- testing/trino-product-tests/target/*
- logs/*
- - name: Upload test report
- uses: actions/upload-artifact@v2
- # Always upload the test report for the annotate.yml workflow,
- # but only the single XML file to keep the artifact small
- if: always()
- with:
- # Name prefix is checked in the `Annotate checks` workflow
- name: test report pt (${{ matrix.config }}, ${{ matrix.suite }}, ${{ matrix.jdk }})
- path: testing/trino-product-tests/target/reports/**/testng-results.xml
- retention-days: ${{ env.TEST_REPORT_RETENTION_DAYS }}
diff --git a/plugin/trino-clickhouse/pom.xml b/plugin/trino-clickhouse/pom.xml
index 3bedba2c85cc..4a9e33b74986 100644
--- a/plugin/trino-clickhouse/pom.xml
+++ b/plugin/trino-clickhouse/pom.xml
@@ -48,6 +48,30 @@
log-manager
+
+ com.clickhouse
+ clickhouse-jdbc
+ 0.3.2
+
+
+ org.slf4j
+ slf4j-api
+
+
+ commons-logging
+ commons-logging
+
+
+ org.projectlombok
+ lombok
+
+
+ com.clickhouse
+ clickhouse-http-client
+
+
+
+
com.google.code.findbugs
jsr305
@@ -73,22 +97,6 @@
javax.inject
-
- ru.yandex.clickhouse
- clickhouse-jdbc
- 0.2.4
-
-
- org.slf4j
- jcl-over-slf4j
-
-
- commons-logging
- commons-logging
-
-
-
-
io.trino
diff --git a/plugin/trino-clickhouse/src/main/java/io/trino/plugin/clickhouse/ClickHouseClient.java b/plugin/trino-clickhouse/src/main/java/io/trino/plugin/clickhouse/ClickHouseClient.java
index be00c112814e..8d258e3c2536 100644
--- a/plugin/trino-clickhouse/src/main/java/io/trino/plugin/clickhouse/ClickHouseClient.java
+++ b/plugin/trino-clickhouse/src/main/java/io/trino/plugin/clickhouse/ClickHouseClient.java
@@ -401,6 +401,7 @@ public Optional toColumnMapping(ConnectorSession session, Connect
return Optional.of(bigintColumnMapping());
case Types.FLOAT:
+ case Types.REAL:
return Optional.of(ColumnMapping.longMapping(
REAL,
(resultSet, columnIndex) -> floatToRawIntBits(resultSet.getFloat(columnIndex)),
diff --git a/plugin/trino-clickhouse/src/main/java/io/trino/plugin/clickhouse/ClickHouseConnectionFactory.java b/plugin/trino-clickhouse/src/main/java/io/trino/plugin/clickhouse/ClickHouseConnectionFactory.java
index 2fe6d9ed3039..42736a66d433 100644
--- a/plugin/trino-clickhouse/src/main/java/io/trino/plugin/clickhouse/ClickHouseConnectionFactory.java
+++ b/plugin/trino-clickhouse/src/main/java/io/trino/plugin/clickhouse/ClickHouseConnectionFactory.java
@@ -49,15 +49,20 @@ protected Connection getDelegate()
return delegate;
}
+ // Since https://github.com/ClickHouse/clickhouse-jdbc/commit/259682eaa8d5af741e4df57ca745f21ae3ae574c setAutoCommit(false) will fail
@Override
- public boolean getAutoCommit()
- throws SQLException
+ public void setAutoCommit(boolean autoCommit)
+ {
+ }
+
+ @Override
+ public void commit()
+ {
+ }
+
+ @Override
+ public void rollback()
{
- // ClickHouse's Connection (ru.yandex.clickhouse.ClickHouseConnectionImpl) ignores setAutoCommit, commit and rollback,
- // but still returns false from getAutoCommit().
- // TODO once https://github.com/ClickHouse/clickhouse-jdbc/issues/657 is solved, remove the workaround.
- verify(!delegate.getAutoCommit(), "ClickHouse connection declared auto-commit mode, the code needs update");
- return true;
}
};
}
diff --git a/pom.xml b/pom.xml
index a8ac159a63d4..1de66eea7fb5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -981,7 +981,7 @@
com.github.ben-manes.caffeine
caffeine
- 3.0.3
+ 3.0.4