diff --git a/plugin/trino-clickhouse/pom.xml b/plugin/trino-clickhouse/pom.xml index d3e72668a3bb..f89fa046e3fb 100644 --- a/plugin/trino-clickhouse/pom.xml +++ b/plugin/trino-clickhouse/pom.xml @@ -15,7 +15,10 @@ Trino - ClickHouse connector - true + + false 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 515ff2608117..27fce87e266f 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 @@ -89,7 +89,6 @@ import java.net.InetAddress; import java.net.UnknownHostException; import java.sql.Connection; -import java.sql.DatabaseMetaData; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -98,7 +97,6 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZonedDateTime; -import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -294,25 +292,25 @@ public boolean isTopNGuaranteed(ConnectorSession session) return true; } - @Override - public ResultSet getTables(Connection connection, Optional schemaName, Optional tableName) - throws SQLException - { - // Clickhouse maps their "database" to SQL catalogs and does not have schemas - DatabaseMetaData metadata = connection.getMetaData(); - return metadata.getTables( - schemaName.orElse(null), - null, - escapeObjectNameForMetadataQuery(tableName, metadata.getSearchStringEscape()).orElse(null), - getTableTypes().map(types -> types.toArray(String[]::new)).orElse(null)); - } - - @Override - protected String getTableSchemaName(ResultSet resultSet) - throws SQLException - { - return resultSet.getString("TABLE_CAT"); - } +// @Override +// public ResultSet getTables(Connection connection, Optional schemaName, Optional tableName) +// throws SQLException +// { +// // Clickhouse maps their "database" to SQL catalogs and does not have schemas +// DatabaseMetaData metadata = connection.getMetaData(); +// return metadata.getTables( +// schemaName.orElse(null), +// null, +// escapeObjectNameForMetadataQuery(tableName, metadata.getSearchStringEscape()).orElse(null), +// getTableTypes().map(types -> types.toArray(String[]::new)).orElse(null)); +// } +// +// @Override +// protected String getTableSchemaName(ResultSet resultSet) +// throws SQLException +// { +// return resultSet.getString("TABLE_CAT"); +// } private static Optional toTypeHandle(DecimalType decimalType) { @@ -352,25 +350,25 @@ protected void copyTableSchema(ConnectorSession session, Connection connection, } } - @Override - public Collection listSchemas(Connection connection) - { - // for Clickhouse, we need to list catalogs instead of schemas - try (ResultSet resultSet = connection.getMetaData().getCatalogs()) { - ImmutableSet.Builder schemaNames = ImmutableSet.builder(); - while (resultSet.next()) { - String schemaName = resultSet.getString("TABLE_CAT"); - // skip internal schemas - if (filterSchema(schemaName)) { - schemaNames.add(schemaName); - } - } - return schemaNames.build(); - } - catch (SQLException e) { - throw new TrinoException(JDBC_ERROR, e); - } - } +// @Override +// public Collection listSchemas(Connection connection) +// { +// // for Clickhouse, we need to list catalogs instead of schemas +// try (ResultSet resultSet = connection.getMetaData().getCatalogs()) { +// ImmutableSet.Builder schemaNames = ImmutableSet.builder(); +// while (resultSet.next()) { +// String schemaName = resultSet.getString("TABLE_CAT"); +// // skip internal schemas +// if (filterSchema(schemaName)) { +// schemaNames.add(schemaName); +// } +// } +// return schemaNames.build(); +// } +// catch (SQLException e) { +// throw new TrinoException(JDBC_ERROR, e); +// } +// } @Override public Optional getTableComment(ResultSet resultSet) diff --git a/plugin/trino-clickhouse/src/main/java/io/trino/plugin/clickhouse/ClickHouseClientModule.java b/plugin/trino-clickhouse/src/main/java/io/trino/plugin/clickhouse/ClickHouseClientModule.java index 0f170a7ca599..899ee13fe1f9 100644 --- a/plugin/trino-clickhouse/src/main/java/io/trino/plugin/clickhouse/ClickHouseClientModule.java +++ b/plugin/trino-clickhouse/src/main/java/io/trino/plugin/clickhouse/ClickHouseClientModule.java @@ -13,7 +13,6 @@ */ package io.trino.plugin.clickhouse; -import com.clickhouse.jdbc.ClickHouseDriver; import com.google.inject.Binder; import com.google.inject.Module; import com.google.inject.Provides; @@ -70,7 +69,7 @@ public static ConnectionFactory createConnectionFactory(BaseJdbcConfig config, C // https://github.com/ClickHouse/clickhouse-java/issues/1584 // in Clickhouse itself it has been left `true` by default only for backward compatibility. properties.setProperty(PROP_EXTERNAL_DATABASE, "false"); - return new ClickHouseConnectionFactory(DriverConnectionFactory.builder(new ClickHouseDriver(), config.getConnectionUrl(), credentialProvider) + return new ClickHouseConnectionFactory(DriverConnectionFactory.builder(new com.clickhouse.jdbc.Driver(), config.getConnectionUrl(), credentialProvider) .setConnectionProperties(properties) .setOpenTelemetry(openTelemetry) .build()); diff --git a/pom.xml b/pom.xml index 7286768fe842..7c0d64280c00 100644 --- a/pom.xml +++ b/pom.xml @@ -381,8 +381,22 @@ com.clickhouse clickhouse-jdbc - 0.7.1-patch1 + 0.9.2 all + + + com.google.guava + listenablefuture + + + org.roaringbitmap + RoaringBitmap + + + org.roaringbitmap + shims + +