diff --git a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/BaseJdbcClient.java b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/BaseJdbcClient.java index 6c17131a1c5b..e27619d713bf 100644 --- a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/BaseJdbcClient.java +++ b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/BaseJdbcClient.java @@ -106,27 +106,8 @@ public abstract class BaseJdbcClient protected final Set jdbcTypesMappedToVarchar; protected final RemoteQueryModifier queryModifier; private final IdentifierMapping identifierMapping; - private final boolean supportsRetries; - public BaseJdbcClient( - BaseJdbcConfig config, - String identifierQuote, - ConnectionFactory connectionFactory, - QueryBuilder queryBuilder, - IdentifierMapping identifierMapping, - RemoteQueryModifier remoteQueryModifier) - { - this( - identifierQuote, - connectionFactory, - queryBuilder, - config.getJdbcTypesMappedToVarchar(), - identifierMapping, - remoteQueryModifier, - false); - } - public BaseJdbcClient( String identifierQuote, ConnectionFactory connectionFactory, diff --git a/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestingH2JdbcClient.java b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestingH2JdbcClient.java index 37d2e962b693..9acb679cd01f 100644 --- a/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestingH2JdbcClient.java +++ b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestingH2JdbcClient.java @@ -93,7 +93,7 @@ public TestingH2JdbcClient(BaseJdbcConfig config, ConnectionFactory connectionFa public TestingH2JdbcClient(BaseJdbcConfig config, ConnectionFactory connectionFactory, IdentifierMapping identifierMapping) { - super(config, "\"", connectionFactory, new DefaultQueryBuilder(RemoteQueryModifier.NONE), identifierMapping, RemoteQueryModifier.NONE); + super("\"", connectionFactory, new DefaultQueryBuilder(RemoteQueryModifier.NONE), config.getJdbcTypesMappedToVarchar(), identifierMapping, RemoteQueryModifier.NONE, false); } @Override 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 c0cdbb263418..650e9a835ad8 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 @@ -209,7 +209,7 @@ public ClickHouseClient( IdentifierMapping identifierMapping, RemoteQueryModifier queryModifier) { - super(config, "\"", connectionFactory, queryBuilder, identifierMapping, queryModifier); + super("\"", connectionFactory, queryBuilder, config.getJdbcTypesMappedToVarchar(), identifierMapping, queryModifier, false); this.uuidType = typeManager.getType(new TypeSignature(StandardTypes.UUID)); this.ipAddressType = typeManager.getType(new TypeSignature(StandardTypes.IPADDRESS)); JdbcTypeHandle bigintTypeHandle = new JdbcTypeHandle(Types.BIGINT, Optional.of("bigint"), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()); diff --git a/plugin/trino-druid/src/main/java/io/trino/plugin/druid/DruidJdbcClient.java b/plugin/trino-druid/src/main/java/io/trino/plugin/druid/DruidJdbcClient.java index 7ff2fd2a5442..7e7c8eaba8ac 100644 --- a/plugin/trino-druid/src/main/java/io/trino/plugin/druid/DruidJdbcClient.java +++ b/plugin/trino-druid/src/main/java/io/trino/plugin/druid/DruidJdbcClient.java @@ -153,7 +153,7 @@ public class DruidJdbcClient @Inject public DruidJdbcClient(BaseJdbcConfig config, ConnectionFactory connectionFactory, QueryBuilder queryBuilder, IdentifierMapping identifierMapping, RemoteQueryModifier queryModifier) { - super(config, "\"", connectionFactory, queryBuilder, identifierMapping, queryModifier); + super("\"", connectionFactory, queryBuilder, config.getJdbcTypesMappedToVarchar(), identifierMapping, queryModifier, false); } @Override diff --git a/plugin/trino-ignite/src/main/java/io/trino/plugin/ignite/IgniteClient.java b/plugin/trino-ignite/src/main/java/io/trino/plugin/ignite/IgniteClient.java index c1df9cefa302..67a4e9c416f8 100644 --- a/plugin/trino-ignite/src/main/java/io/trino/plugin/ignite/IgniteClient.java +++ b/plugin/trino-ignite/src/main/java/io/trino/plugin/ignite/IgniteClient.java @@ -158,7 +158,7 @@ public IgniteClient( IdentifierMapping identifierMapping, RemoteQueryModifier queryModifier) { - super(config, "`", connectionFactory, queryBuilder, identifierMapping, queryModifier); + super("`", connectionFactory, queryBuilder, config.getJdbcTypesMappedToVarchar(), identifierMapping, queryModifier, false); JdbcTypeHandle bigintTypeHandle = new JdbcTypeHandle(Types.BIGINT, Optional.of("bigint"), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()); this.connectorExpressionRewriter = JdbcConnectorExpressionRewriterBuilder.newBuilder() diff --git a/plugin/trino-mariadb/src/main/java/io/trino/plugin/mariadb/MariaDbClient.java b/plugin/trino-mariadb/src/main/java/io/trino/plugin/mariadb/MariaDbClient.java index 264eb7d1349b..743f6bb329a8 100644 --- a/plugin/trino-mariadb/src/main/java/io/trino/plugin/mariadb/MariaDbClient.java +++ b/plugin/trino-mariadb/src/main/java/io/trino/plugin/mariadb/MariaDbClient.java @@ -160,7 +160,7 @@ public class MariaDbClient @Inject public MariaDbClient(BaseJdbcConfig config, ConnectionFactory connectionFactory, QueryBuilder queryBuilder, IdentifierMapping identifierMapping, RemoteQueryModifier queryModifier) { - super(config, "`", connectionFactory, queryBuilder, identifierMapping, queryModifier); + super("`", connectionFactory, queryBuilder, config.getJdbcTypesMappedToVarchar(), identifierMapping, queryModifier, false); JdbcTypeHandle bigintTypeHandle = new JdbcTypeHandle(Types.BIGINT, Optional.of("bigint"), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()); ConnectorExpressionRewriter connectorExpressionRewriter = JdbcConnectorExpressionRewriterBuilder.newBuilder() 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 aa155f66da10..f9be1f76a01c 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 @@ -203,7 +203,7 @@ public OracleClient( IdentifierMapping identifierMapping, RemoteQueryModifier queryModifier) { - super(config, "\"", connectionFactory, queryBuilder, identifierMapping, queryModifier); + super("\"", connectionFactory, queryBuilder, config.getJdbcTypesMappedToVarchar(), identifierMapping, queryModifier, false); this.synonymsEnabled = oracleConfig.isSynonymsEnabled(); 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 61975c21a47d..7dafbfca9859 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 @@ -241,7 +241,7 @@ public RedshiftClient( RemoteQueryModifier queryModifier, RedshiftConfig redshiftConfig) { - super(config, "\"", connectionFactory, queryBuilder, identifierMapping, queryModifier); + super("\"", connectionFactory, queryBuilder, config.getJdbcTypesMappedToVarchar(), identifierMapping, queryModifier, false); this.legacyTypeMapping = redshiftConfig.isLegacyTypeMapping(); ConnectorExpressionRewriter connectorExpressionRewriter = JdbcConnectorExpressionRewriterBuilder.newBuilder() .addStandardRules(this::quoted) diff --git a/plugin/trino-singlestore/src/main/java/io/trino/plugin/singlestore/SingleStoreClient.java b/plugin/trino-singlestore/src/main/java/io/trino/plugin/singlestore/SingleStoreClient.java index 555bdcc70c23..044f08fc5ffb 100644 --- a/plugin/trino-singlestore/src/main/java/io/trino/plugin/singlestore/SingleStoreClient.java +++ b/plugin/trino-singlestore/src/main/java/io/trino/plugin/singlestore/SingleStoreClient.java @@ -153,9 +153,34 @@ public class SingleStoreClient private final Type jsonType; @Inject - public SingleStoreClient(BaseJdbcConfig config, ConnectionFactory connectionFactory, QueryBuilder queryBuilder, TypeManager typeManager, IdentifierMapping identifierMapping, RemoteQueryModifier queryModifier) + public SingleStoreClient( + BaseJdbcConfig config, + ConnectionFactory connectionFactory, + QueryBuilder queryBuilder, + TypeManager typeManager, + IdentifierMapping identifierMapping, + RemoteQueryModifier queryModifier) { - super(config, "`", connectionFactory, queryBuilder, identifierMapping, queryModifier); + this( + config, + connectionFactory, + queryBuilder, + typeManager, + identifierMapping, + queryModifier, + false); + } + + protected SingleStoreClient( + BaseJdbcConfig config, + ConnectionFactory connectionFactory, + QueryBuilder queryBuilder, + TypeManager typeManager, + IdentifierMapping identifierMapping, + RemoteQueryModifier queryModifier, + boolean supportsRetries) + { + super("`", connectionFactory, queryBuilder, config.getJdbcTypesMappedToVarchar(), identifierMapping, queryModifier, supportsRetries); requireNonNull(typeManager, "typeManager is null"); this.jsonType = typeManager.getType(new TypeSignature(StandardTypes.JSON)); } diff --git a/testing/trino-testing/src/main/java/io/trino/testing/BaseFailureRecoveryTest.java b/testing/trino-testing/src/main/java/io/trino/testing/BaseFailureRecoveryTest.java index 7404db1d3ca1..beb98ea7201d 100644 --- a/testing/trino-testing/src/main/java/io/trino/testing/BaseFailureRecoveryTest.java +++ b/testing/trino-testing/src/main/java/io/trino/testing/BaseFailureRecoveryTest.java @@ -81,14 +81,20 @@ public abstract class BaseFailureRecoveryTest protected static final int INVOCATION_COUNT = 1; private static final Duration MAX_ERROR_DURATION = new Duration(5, SECONDS); private static final Duration REQUEST_TIMEOUT = new Duration(5, SECONDS); - private static final int MAX_PARALLEL_TEST_CONCURRENCY = 4; + private static final int DEFAULT_MAX_PARALLEL_TEST_CONCURRENCY = 4; private final RetryPolicy retryPolicy; - private final Semaphore parallelTestsSemaphore = new Semaphore(MAX_PARALLEL_TEST_CONCURRENCY); + private final Semaphore parallelTestsSemaphore; protected BaseFailureRecoveryTest(RetryPolicy retryPolicy) + { + this(retryPolicy, DEFAULT_MAX_PARALLEL_TEST_CONCURRENCY); + } + + protected BaseFailureRecoveryTest(RetryPolicy retryPolicy, int maxParallelTestConcurrency) { this.retryPolicy = requireNonNull(retryPolicy, "retryPolicy is null"); + this.parallelTestsSemaphore = new Semaphore(maxParallelTestConcurrency); } protected RetryPolicy getRetryPolicy()