diff --git a/plugin/trino-oracle/src/main/java/io/trino/plugin/oracle/OracleClient.java b/plugin/trino-oracle/src/main/java/io/trino/plugin/oracle/OracleClient.java index 3a1a34380cf8..15013c68042e 100644 --- a/plugin/trino-oracle/src/main/java/io/trino/plugin/oracle/OracleClient.java +++ b/plugin/trino-oracle/src/main/java/io/trino/plugin/oracle/OracleClient.java @@ -196,7 +196,6 @@ public class OracleClient .put(TIMESTAMP_TZ_MILLIS, WriteMapping.longMapping("timestamp(3) with time zone", oracleTimestampWithTimeZoneWriteFunction())) .buildOrThrow(); - private final boolean disableAutomaticFetchSize; private final boolean synonymsEnabled; private final ConnectorExpressionRewriter connectorExpressionRewriter; private final AggregateFunctionRewriter aggregateFunctionRewriter; @@ -212,7 +211,6 @@ public OracleClient( { super("\"", connectionFactory, queryBuilder, config.getJdbcTypesMappedToVarchar(), identifierMapping, queryModifier, false); - this.disableAutomaticFetchSize = oracleConfig.isDisableAutomaticFetchSize(); this.synonymsEnabled = oracleConfig.isSynonymsEnabled(); this.connectorExpressionRewriter = JdbcConnectorExpressionRewriterBuilder.newBuilder() @@ -262,12 +260,9 @@ public PreparedStatement getPreparedStatement(Connection connection, String sql, throws SQLException { PreparedStatement statement = connection.prepareStatement(sql); - if (disableAutomaticFetchSize) { - statement.setFetchSize(1000); - } // This is a heuristic, not exact science. A better formula can perhaps be found with measurements. // Column count is not known for non-SELECT queries. Not setting fetch size for these. - else if (columnCount.isPresent()) { + if (columnCount.isPresent()) { statement.setFetchSize(max(100_000 / columnCount.get(), 1_000)); } return statement; diff --git a/plugin/trino-oracle/src/main/java/io/trino/plugin/oracle/OracleConfig.java b/plugin/trino-oracle/src/main/java/io/trino/plugin/oracle/OracleConfig.java index 80b0f5a620be..151c4a9631a9 100644 --- a/plugin/trino-oracle/src/main/java/io/trino/plugin/oracle/OracleConfig.java +++ b/plugin/trino-oracle/src/main/java/io/trino/plugin/oracle/OracleConfig.java @@ -15,6 +15,7 @@ import io.airlift.configuration.Config; import io.airlift.configuration.ConfigDescription; +import io.airlift.configuration.DefunctConfig; import io.airlift.units.Duration; import javax.validation.constraints.AssertTrue; @@ -27,9 +28,9 @@ import static java.util.concurrent.TimeUnit.MINUTES; +@DefunctConfig("oracle.disable-automatic-fetch-size") public class OracleConfig { - private boolean disableAutomaticFetchSize; private boolean synonymsEnabled; private boolean remarksReportingEnabled; private Integer defaultNumberScale; @@ -39,20 +40,6 @@ public class OracleConfig private int connectionPoolMaxSize = 30; private Duration inactiveConnectionTimeout = new Duration(20, MINUTES); - @Deprecated - public boolean isDisableAutomaticFetchSize() - { - return disableAutomaticFetchSize; - } - - @Deprecated // TODO temporary kill-switch, to be removed - @Config("oracle.disable-automatic-fetch-size") - public OracleConfig setDisableAutomaticFetchSize(boolean disableAutomaticFetchSize) - { - this.disableAutomaticFetchSize = disableAutomaticFetchSize; - return this; - } - @NotNull public boolean isSynonymsEnabled() { diff --git a/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestOracleConfig.java b/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestOracleConfig.java index fb561e38a55a..340b2881b1c0 100644 --- a/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestOracleConfig.java +++ b/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestOracleConfig.java @@ -36,7 +36,6 @@ public class TestOracleConfig public void testDefaults() { assertRecordedDefaults(recordDefaults(OracleConfig.class) - .setDisableAutomaticFetchSize(false) .setSynonymsEnabled(false) .setRemarksReportingEnabled(false) .setDefaultNumberScale(null) @@ -51,7 +50,6 @@ public void testDefaults() public void testExplicitPropertyMappings() { Map properties = ImmutableMap.builder() - .put("oracle.disable-automatic-fetch-size", "true") .put("oracle.synonyms.enabled", "true") .put("oracle.remarks-reporting.enabled", "true") .put("oracle.number.default-scale", "2") @@ -63,7 +61,6 @@ public void testExplicitPropertyMappings() .buildOrThrow(); OracleConfig expected = new OracleConfig() - .setDisableAutomaticFetchSize(true) .setSynonymsEnabled(true) .setRemarksReportingEnabled(true) .setDefaultNumberScale(2) 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 9931b06d46e7..b225e46b5791 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 @@ -269,7 +269,6 @@ public class PostgreSqlClient return FULL_PUSHDOWN.apply(session, simplifiedDomain); }; - private final boolean disableAutomaticFetchSize; private final Type jsonType; private final Type uuidType; private final MapType varcharMapType; @@ -290,7 +289,6 @@ public PostgreSqlClient( RemoteQueryModifier queryModifier) { super("\"", connectionFactory, queryBuilder, config.getJdbcTypesMappedToVarchar(), identifierMapping, queryModifier, true); - this.disableAutomaticFetchSize = postgreSqlConfig.isDisableAutomaticFetchSize(); this.jsonType = typeManager.getType(new TypeSignature(JSON)); this.uuidType = typeManager.getType(new TypeSignature(StandardTypes.UUID)); this.varcharMapType = (MapType) typeManager.getType(mapType(VARCHAR.getTypeSignature(), VARCHAR.getTypeSignature())); @@ -408,12 +406,9 @@ public PreparedStatement getPreparedStatement(Connection connection, String sql, // fetch-size is ignored when connection is in auto-commit connection.setAutoCommit(false); PreparedStatement statement = connection.prepareStatement(sql); - if (disableAutomaticFetchSize) { - statement.setFetchSize(1000); - } // This is a heuristic, not exact science. A better formula can perhaps be found with measurements. // Column count is not known for non-SELECT queries. Not setting fetch size for these. - else if (columnCount.isPresent()) { + if (columnCount.isPresent()) { statement.setFetchSize(max(100_000 / columnCount.get(), 1_000)); } return statement; diff --git a/plugin/trino-postgresql/src/main/java/io/trino/plugin/postgresql/PostgreSqlConfig.java b/plugin/trino-postgresql/src/main/java/io/trino/plugin/postgresql/PostgreSqlConfig.java index beb48172d237..d8ef16828593 100644 --- a/plugin/trino-postgresql/src/main/java/io/trino/plugin/postgresql/PostgreSqlConfig.java +++ b/plugin/trino-postgresql/src/main/java/io/trino/plugin/postgresql/PostgreSqlConfig.java @@ -14,31 +14,18 @@ package io.trino.plugin.postgresql; import io.airlift.configuration.Config; +import io.airlift.configuration.DefunctConfig; import io.airlift.configuration.LegacyConfig; import javax.validation.constraints.NotNull; +@DefunctConfig("postgresql.disable-automatic-fetch-size") public class PostgreSqlConfig { - private boolean disableAutomaticFetchSize; private ArrayMapping arrayMapping = ArrayMapping.DISABLED; private boolean includeSystemTables; private boolean enableStringPushdownWithCollate; - @Deprecated - public boolean isDisableAutomaticFetchSize() - { - return disableAutomaticFetchSize; - } - - @Deprecated // TODO temporary kill-switch, to be removed - @Config("postgresql.disable-automatic-fetch-size") - public PostgreSqlConfig setDisableAutomaticFetchSize(boolean disableAutomaticFetchSize) - { - this.disableAutomaticFetchSize = disableAutomaticFetchSize; - return this; - } - public enum ArrayMapping { DISABLED, diff --git a/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlConfig.java b/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlConfig.java index f51481e69121..8ca80f04f058 100644 --- a/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlConfig.java +++ b/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlConfig.java @@ -28,7 +28,6 @@ public class TestPostgreSqlConfig public void testDefaults() { assertRecordedDefaults(recordDefaults(PostgreSqlConfig.class) - .setDisableAutomaticFetchSize(false) .setArrayMapping(PostgreSqlConfig.ArrayMapping.DISABLED) .setIncludeSystemTables(false) .setEnableStringPushdownWithCollate(false)); @@ -38,14 +37,12 @@ public void testDefaults() public void testExplicitPropertyMappings() { Map properties = ImmutableMap.builder() - .put("postgresql.disable-automatic-fetch-size", "true") .put("postgresql.array-mapping", "AS_ARRAY") .put("postgresql.include-system-tables", "true") .put("postgresql.experimental.enable-string-pushdown-with-collate", "true") .buildOrThrow(); PostgreSqlConfig expected = new PostgreSqlConfig() - .setDisableAutomaticFetchSize(true) .setArrayMapping(PostgreSqlConfig.ArrayMapping.AS_ARRAY) .setIncludeSystemTables(true) .setEnableStringPushdownWithCollate(true); diff --git a/plugin/trino-redshift/src/main/java/io/trino/plugin/redshift/RedshiftClient.java b/plugin/trino-redshift/src/main/java/io/trino/plugin/redshift/RedshiftClient.java index cd497aad5352..5573ebcb870b 100644 --- a/plugin/trino-redshift/src/main/java/io/trino/plugin/redshift/RedshiftClient.java +++ b/plugin/trino-redshift/src/main/java/io/trino/plugin/redshift/RedshiftClient.java @@ -227,7 +227,6 @@ public class RedshiftClient .toFormatter(); private static final OffsetDateTime REDSHIFT_MIN_SUPPORTED_TIMESTAMP_TZ = OffsetDateTime.of(-4712, 1, 1, 0, 0, 0, 0, ZoneOffset.UTC); - private final boolean disableAutomaticFetchSize; private final AggregateFunctionRewriter aggregateFunctionRewriter; private final boolean statisticsEnabled; private final RedshiftTableStatisticsReader statisticsReader; @@ -244,7 +243,6 @@ public RedshiftClient( RedshiftConfig redshiftConfig) { super("\"", connectionFactory, queryBuilder, config.getJdbcTypesMappedToVarchar(), identifierMapping, queryModifier, true); - this.disableAutomaticFetchSize = redshiftConfig.isDisableAutomaticFetchSize(); this.legacyTypeMapping = redshiftConfig.isLegacyTypeMapping(); ConnectorExpressionRewriter connectorExpressionRewriter = JdbcConnectorExpressionRewriterBuilder.newBuilder() .addStandardRules(this::quoted) @@ -415,12 +413,9 @@ public PreparedStatement getPreparedStatement(Connection connection, String sql, // that. connection.setAutoCommit(false); PreparedStatement statement = connection.prepareStatement(sql); - if (disableAutomaticFetchSize) { - statement.setFetchSize(1000); - } // This is a heuristic, not exact science. A better formula can perhaps be found with measurements. // Column count is not known for non-SELECT queries. Not setting fetch size for these. - else if (columnCount.isPresent()) { + if (columnCount.isPresent()) { statement.setFetchSize(max(100_000 / columnCount.get(), 1_000)); } return statement; diff --git a/plugin/trino-redshift/src/main/java/io/trino/plugin/redshift/RedshiftConfig.java b/plugin/trino-redshift/src/main/java/io/trino/plugin/redshift/RedshiftConfig.java index 6af2cfb0fb1a..7797f51c9726 100644 --- a/plugin/trino-redshift/src/main/java/io/trino/plugin/redshift/RedshiftConfig.java +++ b/plugin/trino-redshift/src/main/java/io/trino/plugin/redshift/RedshiftConfig.java @@ -14,26 +14,13 @@ package io.trino.plugin.redshift; import io.airlift.configuration.Config; +import io.airlift.configuration.DefunctConfig; +@DefunctConfig("redshift.disable-automatic-fetch-size") public class RedshiftConfig { - private boolean disableAutomaticFetchSize; private boolean legacyTypeMapping; - @Deprecated - public boolean isDisableAutomaticFetchSize() - { - return disableAutomaticFetchSize; - } - - @Deprecated // TODO temporary kill-switch, to be removed - @Config("redshift.disable-automatic-fetch-size") - public RedshiftConfig setDisableAutomaticFetchSize(boolean disableAutomaticFetchSize) - { - this.disableAutomaticFetchSize = disableAutomaticFetchSize; - return this; - } - public boolean isLegacyTypeMapping() { return legacyTypeMapping; diff --git a/plugin/trino-redshift/src/test/java/io/trino/plugin/redshift/TestRedshiftConfig.java b/plugin/trino-redshift/src/test/java/io/trino/plugin/redshift/TestRedshiftConfig.java index ae434ea10cd2..2b516055d33d 100644 --- a/plugin/trino-redshift/src/test/java/io/trino/plugin/redshift/TestRedshiftConfig.java +++ b/plugin/trino-redshift/src/test/java/io/trino/plugin/redshift/TestRedshiftConfig.java @@ -28,7 +28,6 @@ public class TestRedshiftConfig public void testDefaults() { assertRecordedDefaults(recordDefaults(RedshiftConfig.class) - .setDisableAutomaticFetchSize(false) .setLegacyTypeMapping(false)); } @@ -36,12 +35,10 @@ public void testDefaults() public void testExplicitPropertyMappings() { Map properties = ImmutableMap.builder() - .put("redshift.disable-automatic-fetch-size", "true") .put("redshift.use-legacy-type-mapping", "true") .buildOrThrow(); RedshiftConfig expected = new RedshiftConfig() - .setDisableAutomaticFetchSize(true) .setLegacyTypeMapping(true); assertFullMapping(properties, expected);