diff --git a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeConfig.java b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeConfig.java index 150278774a3e..4cc2245fae95 100644 --- a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeConfig.java +++ b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeConfig.java @@ -40,6 +40,7 @@ @DefunctConfig("delta.experimental.ignore-checkpoint-write-failures") public class DeltaLakeConfig { + public static final String EXTENDED_STATISTICS_ENABLED = "delta.extended-statistics.enabled"; public static final String VACUUM_MIN_RETENTION = "delta.vacuum.min-retention"; // Runtime.getRuntime().maxMemory() is not 100% stable and may return slightly different value over JVM lifetime. We use @@ -321,7 +322,7 @@ public boolean isExtendedStatisticsEnabled() return extendedStatisticsEnabled; } - @Config("delta.extended-statistics.enabled") + @Config(EXTENDED_STATISTICS_ENABLED) @ConfigDescription("Use extended statistics collected by ANALYZE") public DeltaLakeConfig setExtendedStatisticsEnabled(boolean extendedStatisticsEnabled) { diff --git a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeMetadata.java b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeMetadata.java index 61ac309d8a6f..b35750cfd9fb 100644 --- a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeMetadata.java +++ b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeMetadata.java @@ -2234,9 +2234,10 @@ public Optional applyTableScanRedirect(Conne public ConnectorAnalyzeMetadata getStatisticsCollectionMetadata(ConnectorSession session, ConnectorTableHandle tableHandle, Map analyzeProperties) { if (!isExtendedStatisticsEnabled(session)) { - throw new TrinoException( - NOT_SUPPORTED, - "ANALYZE not supported if extended statistics are disabled. Enable via delta.extended-statistics.enabled config property or extended_statistics_enabled session property."); + throw new TrinoException(NOT_SUPPORTED, format( + "ANALYZE not supported if extended statistics are disabled. Enable via %s config property or %s session property.", + DeltaLakeConfig.EXTENDED_STATISTICS_ENABLED, + DeltaLakeSessionProperties.EXTENDED_STATISTICS_ENABLED)); } DeltaLakeTableHandle handle = (DeltaLakeTableHandle) tableHandle; diff --git a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeSessionProperties.java b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeSessionProperties.java index 798cb6e26a78..3d0d661c1ce5 100644 --- a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeSessionProperties.java +++ b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeSessionProperties.java @@ -55,7 +55,7 @@ public final class DeltaLakeSessionProperties private static final String TIMESTAMP_PRECISION = "timestamp_precision"; private static final String DYNAMIC_FILTERING_WAIT_TIMEOUT = "dynamic_filtering_wait_timeout"; private static final String TABLE_STATISTICS_ENABLED = "statistics_enabled"; - private static final String EXTENDED_STATISTICS_ENABLED = "extended_statistics_enabled"; + public static final String EXTENDED_STATISTICS_ENABLED = "extended_statistics_enabled"; private final List> sessionProperties; diff --git a/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/TestDeltaLakePlugin.java b/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/TestDeltaLakePlugin.java index 2a182ad484a2..badd1f894e68 100644 --- a/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/TestDeltaLakePlugin.java +++ b/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/TestDeltaLakePlugin.java @@ -15,6 +15,7 @@ import com.google.common.collect.ImmutableMap; import io.airlift.bootstrap.ApplicationConfigurationException; +import io.trino.plugin.hive.HiveConfig; import io.trino.spi.Plugin; import io.trino.spi.connector.Connector; import io.trino.spi.connector.ConnectorFactory; @@ -142,6 +143,19 @@ public void testNoActiveDataFilesCaching() new TestingConnectorContext()); } + @Test + public void testHiveConfigIsNotBound() + { + ConnectorFactory factory = getOnlyElement(new DeltaLakePlugin().getConnectorFactories()); + assertThatThrownBy(() -> factory.create("test", + ImmutableMap.of( + "hive.metastore.uri", "thrift://foo:1234", + // Try setting any property provided by HiveConfig class + HiveConfig.CONFIGURATION_HIVE_PARTITION_PROJECTION_ENABLED, "true"), + new TestingConnectorContext())) + .hasMessageContaining("Error: Configuration property 'hive.partition-projection-enabled' was not used"); + } + @Test public void testReadOnlyAllAccessControl() {