diff --git a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorMetadata.java b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorMetadata.java index 832a8b6e3fbc..9dd34bd91d38 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorMetadata.java +++ b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorMetadata.java @@ -264,23 +264,12 @@ default Stream streamTableColumns(ConnectorSession session .map(entry -> TableColumnsMetadata.forTable(entry.getKey(), entry.getValue())); } - /** - * Get statistics for table for given filtering constraint. - * - * @deprecated Use {@link #getTableStatistics(ConnectorSession, ConnectorTableHandle)} - */ - @Deprecated - default TableStatistics getTableStatistics(ConnectorSession session, ConnectorTableHandle tableHandle, Constraint constraint) - { - return TableStatistics.empty(); - } - /** * Get statistics for table. */ default TableStatistics getTableStatistics(ConnectorSession session, ConnectorTableHandle tableHandle) { - return getTableStatistics(session, tableHandle, Constraint.alwaysTrue()); + return TableStatistics.empty(); } /** diff --git a/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorMetadata.java b/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorMetadata.java index 09c249f4a0ef..d4ca8ca765f7 100644 --- a/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorMetadata.java +++ b/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorMetadata.java @@ -313,14 +313,6 @@ public Stream streamTableColumns(ConnectorSession session, } } - @Override - public TableStatistics getTableStatistics(ConnectorSession session, ConnectorTableHandle tableHandle, Constraint constraint) - { - try (ThreadContextClassLoader ignored = new ThreadContextClassLoader(classLoader)) { - return delegate.getTableStatistics(session, tableHandle, constraint); - } - } - @Override public TableStatistics getTableStatistics(ConnectorSession session, ConnectorTableHandle tableHandle) { diff --git a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/CachingJdbcClient.java b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/CachingJdbcClient.java index dbfcfddcbefb..840725bfcd24 100644 --- a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/CachingJdbcClient.java +++ b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/CachingJdbcClient.java @@ -61,6 +61,7 @@ import static com.google.common.base.MoreObjects.firstNonNull; import static com.google.common.base.MoreObjects.toStringHelper; +import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Throwables.throwIfInstanceOf; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableMap.toImmutableMap; @@ -85,7 +86,7 @@ public class CachingJdbcClient private final Cache> tableHandlesByNameCache; private final Cache tableHandlesByQueryCache; private final Cache> columnsCache; - private final Cache statisticsCache; + private final Cache statisticsCache; @Inject public CachingJdbcClient( @@ -354,16 +355,22 @@ public PreparedStatement getPreparedStatement(Connection connection, String sql) @Override public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle, TupleDomain tupleDomain) { - TableStatisticsCacheKey key = new TableStatisticsCacheKey(handle, tupleDomain); + checkArgument(tupleDomain.isAll(), "Unexpected non-ALL constraint: %s", tupleDomain); + return getTableStatistics(session, handle); + } - TableStatistics cachedStatistics = statisticsCache.getIfPresent(key); + @Override + public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle) + { + // TODO depend on Identity when needed + TableStatistics cachedStatistics = statisticsCache.getIfPresent(handle); if (cachedStatistics != null) { if (cacheMissing || !cachedStatistics.equals(TableStatistics.empty())) { return cachedStatistics; } - statisticsCache.invalidate(key); + statisticsCache.invalidate(handle); } - return get(statisticsCache, key, () -> delegate.getTableStatistics(session, handle, tupleDomain)); + return get(statisticsCache, handle, () -> delegate.getTableStatistics(session, handle)); } @Override @@ -489,7 +496,7 @@ public Optional getTableScanRedirection(Conn public void onDataChanged(SchemaTableName table) { - invalidateCache(statisticsCache, key -> key.tableHandle.references(table)); + invalidateCache(statisticsCache, key -> key.references(table)); } /** @@ -500,7 +507,7 @@ public void onDataChanged(SchemaTableName table) @Deprecated public void onDataChanged(JdbcTableHandle handle) { - invalidateCache(statisticsCache, key -> key.tableHandle.equals(handle)); + invalidateCache(statisticsCache, key -> key.equals(handle)); } @Override @@ -558,7 +565,7 @@ private void invalidateTableCaches(SchemaTableName schemaTableName) invalidateCache(tableHandlesByNameCache, key -> key.tableName.equals(schemaTableName)); tableHandlesByQueryCache.invalidateAll(); invalidateCache(tableNamesCache, key -> key.schemaName.equals(Optional.of(schemaTableName.getSchemaName()))); - invalidateCache(statisticsCache, key -> key.tableHandle.references(schemaTableName)); + invalidateCache(statisticsCache, key -> key.references(schemaTableName)); } private void invalidateColumnsCache(SchemaTableName table) @@ -754,48 +761,6 @@ private static V get(Cache cache, K key, Callable loader) } } - private static final class TableStatisticsCacheKey - { - // TODO depend on Identity when needed - private final JdbcTableHandle tableHandle; - private final TupleDomain tupleDomain; - - private TableStatisticsCacheKey(JdbcTableHandle tableHandle, TupleDomain tupleDomain) - { - this.tableHandle = requireNonNull(tableHandle, "tableHandle is null"); - this.tupleDomain = requireNonNull(tupleDomain, "tupleDomain is null"); - } - - @Override - public boolean equals(Object o) - { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - TableStatisticsCacheKey that = (TableStatisticsCacheKey) o; - return tableHandle.equals(that.tableHandle) - && tupleDomain.equals(that.tupleDomain); - } - - @Override - public int hashCode() - { - return Objects.hash(tableHandle, tupleDomain); - } - - @Override - public String toString() - { - return toStringHelper(this) - .add("tableHandle", tableHandle) - .add("tupleDomain", tupleDomain) - .toString(); - } - } - @Managed @Nested public CacheStatsMBean getSchemaNamesStats() diff --git a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/DefaultJdbcMetadata.java b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/DefaultJdbcMetadata.java index 9a08b643e2a3..af8a5468b08f 100644 --- a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/DefaultJdbcMetadata.java +++ b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/DefaultJdbcMetadata.java @@ -855,8 +855,7 @@ public void setTableProperties(ConnectorSession session, ConnectorTableHandle ta public TableStatistics getTableStatistics(ConnectorSession session, ConnectorTableHandle tableHandle) { JdbcTableHandle handle = (JdbcTableHandle) tableHandle; - // TODO passing constraint to getTableStatistics is deprecated, remove it from the JdbcClient interface - return jdbcClient.getTableStatistics(session, handle, Constraint.alwaysTrue().getSummary()); + return jdbcClient.getTableStatistics(session, handle); } @Override diff --git a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/ForwardingJdbcClient.java b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/ForwardingJdbcClient.java index d1ed89adc02d..fff6a075266f 100644 --- a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/ForwardingJdbcClient.java +++ b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/ForwardingJdbcClient.java @@ -246,6 +246,12 @@ public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHan return delegate().getTableStatistics(session, handle, tupleDomain); } + @Override + public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle) + { + return delegate().getTableStatistics(session, handle); + } + @Override public boolean supportsTopN(ConnectorSession session, JdbcTableHandle handle, List sortOrder) { diff --git a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/JdbcClient.java b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/JdbcClient.java index 73a8d738c358..2e055eb8c94d 100644 --- a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/JdbcClient.java +++ b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/JdbcClient.java @@ -176,8 +176,17 @@ Connection getConnection(ConnectorSession session, JdbcOutputTableHandle handle) PreparedStatement getPreparedStatement(Connection connection, String sql) throws SQLException; + /** + * @deprecated Use {@link #getTableStatistics(ConnectorSession, JdbcTableHandle)} + */ + @Deprecated TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle, TupleDomain tupleDomain); + default TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle) + { + return getTableStatistics(session, handle, TupleDomain.all()); + } + void createSchema(ConnectorSession session, String schemaName); void dropSchema(ConnectorSession session, String schemaName); diff --git a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/jmx/StatisticsAwareJdbcClient.java b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/jmx/StatisticsAwareJdbcClient.java index e8c157c02024..dfa1183ec568 100644 --- a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/jmx/StatisticsAwareJdbcClient.java +++ b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/jmx/StatisticsAwareJdbcClient.java @@ -320,6 +320,12 @@ public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHan return stats.getGetTableStatistics().wrap(() -> delegate().getTableStatistics(session, handle, tupleDomain)); } + @Override + public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle) + { + return stats.getGetTableStatistics().wrap(() -> delegate().getTableStatistics(session, handle)); + } + @Override public boolean supportsTopN(ConnectorSession session, JdbcTableHandle handle, List sortOrder) { diff --git a/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestCachingJdbcClient.java b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestCachingJdbcClient.java index b6764ac747be..0ceeb87a3b32 100644 --- a/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestCachingJdbcClient.java +++ b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestCachingJdbcClient.java @@ -20,7 +20,6 @@ import io.trino.collect.cache.CacheStatsAssertions; import io.trino.plugin.base.session.SessionPropertiesProvider; import io.trino.plugin.jdbc.credential.ExtraCredentialConfig; -import io.trino.spi.connector.ColumnHandle; import io.trino.spi.connector.ColumnMetadata; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorTableMetadata; @@ -380,22 +379,22 @@ public void testGetTableStatistics() // load first assertStatisticsCacheStats(cachingJdbcClient).loads(1).misses(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, first, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, first)).isEqualTo(NON_EMPTY_STATS); }); // read first from cache assertStatisticsCacheStats(cachingJdbcClient).hits(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, first, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, first)).isEqualTo(NON_EMPTY_STATS); }); // load second assertStatisticsCacheStats(cachingJdbcClient).loads(1).misses(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, second, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, second)).isEqualTo(NON_EMPTY_STATS); }); // read first from cache assertStatisticsCacheStats(cachingJdbcClient).hits(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, first, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, first)).isEqualTo(NON_EMPTY_STATS); }); // invalidate first @@ -404,12 +403,12 @@ public void testGetTableStatistics() // load first again assertStatisticsCacheStats(cachingJdbcClient).loads(1).misses(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, secondFirst, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, secondFirst)).isEqualTo(NON_EMPTY_STATS); }); // read first from cache assertStatisticsCacheStats(cachingJdbcClient).hits(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, secondFirst, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, secondFirst)).isEqualTo(NON_EMPTY_STATS); }); // cleanup @@ -437,12 +436,12 @@ public void testCacheGetTableStatisticsWithQueryRelationHandle() // load assertStatisticsCacheStats(cachingJdbcClient).loads(1).misses(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, queryOnFirst, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, queryOnFirst)).isEqualTo(NON_EMPTY_STATS); }); // read from cache assertStatisticsCacheStats(cachingJdbcClient).hits(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, queryOnFirst, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, queryOnFirst)).isEqualTo(NON_EMPTY_STATS); }); // invalidate 'second' @@ -450,7 +449,7 @@ public void testCacheGetTableStatisticsWithQueryRelationHandle() // read from cache again (no invalidation) assertStatisticsCacheStats(cachingJdbcClient).hits(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, queryOnFirst, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, queryOnFirst)).isEqualTo(NON_EMPTY_STATS); }); // invalidate 'first' @@ -458,7 +457,7 @@ public void testCacheGetTableStatisticsWithQueryRelationHandle() // load again assertStatisticsCacheStats(cachingJdbcClient).loads(1).misses(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, queryOnFirst, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, queryOnFirst)).isEqualTo(NON_EMPTY_STATS); }); } @@ -472,12 +471,12 @@ public void testTruncateTable() // load assertStatisticsCacheStats(cachingJdbcClient).loads(1).misses(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, table, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, table)).isEqualTo(NON_EMPTY_STATS); }); // read from cache assertStatisticsCacheStats(cachingJdbcClient).hits(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, table, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, table)).isEqualTo(NON_EMPTY_STATS); }); // invalidate @@ -485,12 +484,12 @@ public void testTruncateTable() // load again assertStatisticsCacheStats(cachingJdbcClient).loads(1).misses(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, table, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, table)).isEqualTo(NON_EMPTY_STATS); }); // read from cache assertStatisticsCacheStats(cachingJdbcClient).hits(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, table, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, table)).isEqualTo(NON_EMPTY_STATS); }); // cleanup @@ -509,7 +508,7 @@ protected JdbcClient delegate() } @Override - public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle, TupleDomain tupleDomain) + public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle) { return NON_EMPTY_STATS; } @@ -525,11 +524,11 @@ public void testCacheEmptyStatistics() JdbcTableHandle table = createTable(new SchemaTableName(schema, "table")); assertStatisticsCacheStats(cachingJdbcClient).loads(1).misses(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, table, TupleDomain.all())).isEqualTo(TableStatistics.empty()); + assertThat(cachingJdbcClient.getTableStatistics(session, table)).isEqualTo(TableStatistics.empty()); }); assertStatisticsCacheStats(cachingJdbcClient).hits(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, table, TupleDomain.all())).isEqualTo(TableStatistics.empty()); + assertThat(cachingJdbcClient.getTableStatistics(session, table)).isEqualTo(TableStatistics.empty()); }); // cleanup @@ -544,11 +543,11 @@ public void testGetTableStatisticsDoNotCacheEmptyWhenCachingMissingIsDisabled() JdbcTableHandle table = createTable(new SchemaTableName(schema, "table")); assertStatisticsCacheStats(cachingJdbcClient).loads(1).misses(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, table, TupleDomain.all())).isEqualTo(TableStatistics.empty()); + assertThat(cachingJdbcClient.getTableStatistics(session, table)).isEqualTo(TableStatistics.empty()); }); assertStatisticsCacheStats(cachingJdbcClient).loads(1).hits(1).misses(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, table, TupleDomain.all())).isEqualTo(TableStatistics.empty()); + assertThat(cachingJdbcClient.getTableStatistics(session, table)).isEqualTo(TableStatistics.empty()); }); // cleanup @@ -596,12 +595,12 @@ public void testFlushCache() // load table assertStatisticsCacheStats(cachingJdbcClient).loads(1).misses(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, first, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, first)).isEqualTo(NON_EMPTY_STATS); }); // read from cache assertStatisticsCacheStats(cachingJdbcClient).hits(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, first, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, first)).isEqualTo(NON_EMPTY_STATS); }); // flush cache @@ -610,12 +609,12 @@ public void testFlushCache() // load table again assertStatisticsCacheStats(cachingJdbcClient).loads(1).misses(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, secondFirst, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, secondFirst)).isEqualTo(NON_EMPTY_STATS); }); // read table from cache assertStatisticsCacheStats(cachingJdbcClient).hits(1).afterRunning(() -> { - assertThat(cachingJdbcClient.getTableStatistics(session, secondFirst, TupleDomain.all())).isEqualTo(NON_EMPTY_STATS); + assertThat(cachingJdbcClient.getTableStatistics(session, secondFirst)).isEqualTo(NON_EMPTY_STATS); }); // cleanup diff --git a/plugin/trino-mysql/src/main/java/io/trino/plugin/mysql/MySqlClient.java b/plugin/trino-mysql/src/main/java/io/trino/plugin/mysql/MySqlClient.java index d0a5ce0e981f..cfa77d92ef34 100644 --- a/plugin/trino-mysql/src/main/java/io/trino/plugin/mysql/MySqlClient.java +++ b/plugin/trino-mysql/src/main/java/io/trino/plugin/mysql/MySqlClient.java @@ -59,7 +59,6 @@ import io.trino.spi.connector.JoinStatistics; import io.trino.spi.connector.JoinType; import io.trino.spi.connector.SchemaTableName; -import io.trino.spi.predicate.TupleDomain; import io.trino.spi.statistics.ColumnStatistics; import io.trino.spi.statistics.Estimate; import io.trino.spi.statistics.TableStatistics; @@ -729,7 +728,7 @@ protected boolean isSupportedJoinCondition(ConnectorSession session, JdbcJoinCon } @Override - public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle, TupleDomain tupleDomain) + public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle) { if (!statisticsEnabled) { return TableStatistics.empty(); diff --git a/plugin/trino-postgresql/src/main/java/io/trino/plugin/postgresql/PostgreSqlClient.java b/plugin/trino-postgresql/src/main/java/io/trino/plugin/postgresql/PostgreSqlClient.java index 412b17ca31b6..e2418eb67d70 100644 --- a/plugin/trino-postgresql/src/main/java/io/trino/plugin/postgresql/PostgreSqlClient.java +++ b/plugin/trino-postgresql/src/main/java/io/trino/plugin/postgresql/PostgreSqlClient.java @@ -82,7 +82,6 @@ import io.trino.spi.connector.TableNotFoundException; import io.trino.spi.expression.ConnectorExpression; import io.trino.spi.predicate.Domain; -import io.trino.spi.predicate.TupleDomain; import io.trino.spi.statistics.ColumnStatistics; import io.trino.spi.statistics.Estimate; import io.trino.spi.statistics.TableStatistics; @@ -855,7 +854,7 @@ public OptionalLong delete(ConnectorSession session, JdbcTableHandle handle) } @Override - public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle, TupleDomain tupleDomain) + public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle) { if (!statisticsEnabled) { return TableStatistics.empty(); diff --git a/plugin/trino-sqlserver/src/main/java/io/trino/plugin/sqlserver/SqlServerClient.java b/plugin/trino-sqlserver/src/main/java/io/trino/plugin/sqlserver/SqlServerClient.java index 3d6ae8d2c8fe..d48e1e18202b 100644 --- a/plugin/trino-sqlserver/src/main/java/io/trino/plugin/sqlserver/SqlServerClient.java +++ b/plugin/trino-sqlserver/src/main/java/io/trino/plugin/sqlserver/SqlServerClient.java @@ -61,7 +61,6 @@ import io.trino.spi.connector.JoinStatistics; import io.trino.spi.connector.JoinType; import io.trino.spi.connector.SchemaTableName; -import io.trino.spi.predicate.TupleDomain; import io.trino.spi.statistics.ColumnStatistics; import io.trino.spi.statistics.Estimate; import io.trino.spi.statistics.TableStatistics; @@ -505,7 +504,7 @@ public WriteMapping toWriteMapping(ConnectorSession session, Type type) } @Override - public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle, TupleDomain tupleDomain) + public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle) { if (!statisticsEnabled) { return TableStatistics.empty(); diff --git a/plugin/trino-tpch/src/test/java/io/trino/plugin/tpch/TestTpchMetadata.java b/plugin/trino-tpch/src/test/java/io/trino/plugin/tpch/TestTpchMetadata.java index a5e0268402ce..98fb17c351a4 100644 --- a/plugin/trino-tpch/src/test/java/io/trino/plugin/tpch/TestTpchMetadata.java +++ b/plugin/trino-tpch/src/test/java/io/trino/plugin/tpch/TestTpchMetadata.java @@ -187,7 +187,7 @@ private void testTableStats(String schema, TpchTable table, Constraint constr private void testNoTableStats(String schema, TpchTable table) { TpchTableHandle tableHandle = tpchMetadata.getTableHandle(session, new SchemaTableName(schema, table.getTableName())); - TableStatistics tableStatistics = tpchMetadata.getTableStatistics(session, tableHandle, alwaysTrue()); + TableStatistics tableStatistics = tpchMetadata.getTableStatistics(session, tableHandle); assertTrue(tableStatistics.getRowCount().isUnknown()); }