Skip to content

Commit 430bbf7

Browse files
get rid of DatabaseDriver as an enum
1 parent 96865c4 commit 430bbf7

File tree

22 files changed

+95
-96
lines changed

22 files changed

+95
-96
lines changed

airbyte-cdk/java/airbyte-cdk/core/src/main/java/io/airbyte/cdk/db/factory/DataSourceFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,8 +259,8 @@ public DataSource build() {
259259

260260
final HikariConfig config = new HikariConfig();
261261

262-
config.setDriverClassName(databaseDriver.getDriverClassName());
263-
config.setJdbcUrl(jdbcUrl != null ? jdbcUrl : String.format(databaseDriver.getUrlFormatString(), host, port, database));
262+
config.setDriverClassName(databaseDriver.driverClassName());
263+
config.setJdbcUrl(jdbcUrl != null ? jdbcUrl : String.format(databaseDriver.urlFormatString(), host, port, database));
264264
config.setMaximumPoolSize(maximumPoolSize);
265265
config.setMinimumIdle(minimumPoolSize);
266266
// HikariCP uses milliseconds for all time values:

airbyte-cdk/java/airbyte-cdk/core/src/main/java/io/airbyte/cdk/db/factory/DatabaseDriver.java

Lines changed: 30 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,61 +4,41 @@
44

55
package io.airbyte.cdk.db.factory;
66

7+
import java.util.HashMap;
8+
import java.util.Map;
9+
import java.util.concurrent.ConcurrentHashMap;
10+
711
/**
812
* Collection of JDBC driver class names and the associated JDBC URL format string.
913
*/
10-
public enum DatabaseDriver {
11-
12-
CLICKHOUSE("com.clickhouse.jdbc.ClickHouseDriver", "jdbc:clickhouse:%s://%s:%d/%s"),
13-
DATABRICKS("com.databricks.client.jdbc.Driver", "jdbc:databricks://%s:%s;HttpPath=%s;SSL=1;UserAgentEntry=Airbyte"),
14-
DB2("com.ibm.db2.jcc.DB2Driver", "jdbc:db2://%s:%d/%s"),
15-
STARBURST("io.trino.jdbc.TrinoDriver", "jdbc:trino://%s:%s/%s?SSL=true&source=airbyte"),
16-
MARIADB("org.mariadb.jdbc.Driver", "jdbc:mariadb://%s:%d/%s"),
17-
MSSQLSERVER("com.microsoft.sqlserver.jdbc.SQLServerDriver", "jdbc:sqlserver://%s:%d;databaseName=%s"),
18-
MYSQL("com.mysql.cj.jdbc.Driver", "jdbc:mysql://%s:%d/%s"),
19-
ORACLE("oracle.jdbc.OracleDriver", "jdbc:oracle:thin:@%s:%d/%s"),
20-
VERTICA("com.vertica.jdbc.Driver", "jdbc:vertica://%s:%d/%s"),
21-
POSTGRESQL("org.postgresql.Driver", "jdbc:postgresql://%s:%d/%s"),
22-
REDSHIFT("com.amazon.redshift.jdbc.Driver", "jdbc:redshift://%s:%d/%s"),
23-
SNOWFLAKE("net.snowflake.client.jdbc.SnowflakeDriver", "jdbc:snowflake://%s/"),
24-
YUGABYTEDB("com.yugabyte.Driver", "jdbc:yugabytedb://%s:%d/%s"),
25-
EXASOL("com.exasol.jdbc.EXADriver", "jdbc:exa:%s:%d"),
26-
TERADATA("com.teradata.jdbc.TeraDriver", "jdbc:teradata://%s/");
27-
28-
private final String driverClassName;
29-
private final String urlFormatString;
30-
31-
DatabaseDriver(final String driverClassName, final String urlFormatString) {
14+
public record DatabaseDriver(String driverClassName, String urlFormatString) {
15+
public static final DatabaseDriver CLICKHOUSE = new DatabaseDriver("com.clickhouse.jdbc.ClickHouseDriver", "jdbc:clickhouse:%s://%s:%d/%s");
16+
public static final DatabaseDriver DATABRICKS = new DatabaseDriver ("com.databricks.client.jdbc.Driver", "jdbc:databricks://%s:%s;HttpPath=%s;SSL=1;UserAgentEntry=Airbyte");
17+
public static final DatabaseDriver DB2 = new DatabaseDriver ("com.ibm.db2.jcc.DB2Driver", "jdbc:db2://%s:%d/%s");
18+
public static final DatabaseDriver STARBURST = new DatabaseDriver ("io.trino.jdbc.TrinoDriver", "jdbc:trino://%s:%s/%s?SSL=true&source=airbyte");
19+
public static final DatabaseDriver MARIADB = new DatabaseDriver ("org.mariadb.jdbc.Driver", "jdbc:mariadb://%s:%d/%s");
20+
public static final DatabaseDriver MSSQLSERVER = new DatabaseDriver ("com.microsoft.sqlserver.jdbc.SQLServerDriver", "jdbc:sqlserver://%s:%d;databaseName=%s");
21+
public static final DatabaseDriver MYSQL = new DatabaseDriver ("com.mysql.cj.jdbc.Driver", "jdbc:mysql://%s:%d/%s");
22+
public static final DatabaseDriver ORACLE = new DatabaseDriver ("oracle.jdbc.OracleDriver", "jdbc:oracle:thin:@%s:%d/%s");
23+
public static final DatabaseDriver VERTICA = new DatabaseDriver ("com.vertica.jdbc.Driver", "jdbc:vertica://%s:%d/%s");
24+
public static final DatabaseDriver POSTGRESQL = new DatabaseDriver ("org.postgresql.Driver", "jdbc:postgresql://%s:%d/%s");
25+
public static final DatabaseDriver REDSHIFT = new DatabaseDriver ("com.amazon.redshift.jdbc.Driver", "jdbc:redshift://%s:%d/%s");
26+
public static final DatabaseDriver SNOWFLAKE = new DatabaseDriver ("net.snowflake.client.jdbc.SnowflakeDriver", "jdbc:snowflake://%s/");
27+
public static final DatabaseDriver YUGABYTEDB = new DatabaseDriver ("com.yugabyte.Driver", "jdbc:yugabytedb://%s:%d/%s");
28+
public static final DatabaseDriver EXASOL = new DatabaseDriver ("com.exasol.jdbc.EXADriver", "jdbc:exa:%s:%d");
29+
public static final DatabaseDriver TERADATA = new DatabaseDriver ("com.teradata.jdbc.TeraDriver", "jdbc:teradata://%s/");
30+
31+
private static Map<String, DatabaseDriver> DRIVER_BY_CLASS_NAME= new ConcurrentHashMap<>();
32+
33+
public DatabaseDriver(Class<? extends java.sql.Driver> driverClass, String urlFormatString) {
34+
this(driverClass.getCanonicalName(), urlFormatString);
35+
}
36+
public DatabaseDriver(String driverClassName, String urlFormatString) {
3237
this.driverClassName = driverClassName;
3338
this.urlFormatString = urlFormatString;
39+
DRIVER_BY_CLASS_NAME.put(driverClassName, this);
3440
}
35-
36-
public String getDriverClassName() {
37-
return driverClassName;
41+
public static DatabaseDriver findByDriverClassName(String driverClassName) {
42+
return DRIVER_BY_CLASS_NAME.get(driverClassName);
3843
}
39-
40-
public String getUrlFormatString() {
41-
return urlFormatString;
42-
}
43-
44-
/**
45-
* Finds the {@link DatabaseDriver} enumerated value that matches the provided driver class name.
46-
*
47-
* @param driverClassName The driver class name.
48-
* @return The matching {@link DatabaseDriver} enumerated value or {@code null} if no match is
49-
* found.
50-
*/
51-
public static DatabaseDriver findByDriverClassName(final String driverClassName) {
52-
DatabaseDriver selected = null;
53-
54-
for (final DatabaseDriver candidate : values()) {
55-
if (candidate.getDriverClassName().equalsIgnoreCase(driverClassName)) {
56-
selected = candidate;
57-
break;
58-
}
59-
}
60-
61-
return selected;
62-
}
63-
6444
}

airbyte-cdk/java/airbyte-cdk/core/src/main/java/io/airbyte/cdk/integrations/JdbcConnector.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44

55
package io.airbyte.cdk.integrations;
66

7+
import static io.airbyte.cdk.db.factory.DatabaseDriver.MSSQLSERVER;
8+
import static io.airbyte.cdk.db.factory.DatabaseDriver.MYSQL;
9+
import static io.airbyte.cdk.db.factory.DatabaseDriver.POSTGRESQL;
10+
711
import io.airbyte.cdk.db.factory.DatabaseDriver;
812
import java.time.Duration;
913
import java.time.temporal.ChronoUnit;
@@ -44,12 +48,19 @@ protected Duration getConnectionTimeout(final Map<String, String> connectionProp
4448
* @return DataSourceBuilder class used to create dynamic fields for DataSource
4549
*/
4650
public static Duration getConnectionTimeout(final Map<String, String> connectionProperties, String driverClassName) {
47-
final Optional<Duration> parsedConnectionTimeout = switch (DatabaseDriver.findByDriverClassName(driverClassName)) {
48-
case POSTGRESQL -> maybeParseDuration(connectionProperties.get(POSTGRES_CONNECT_TIMEOUT_KEY), ChronoUnit.SECONDS)
51+
final Optional<Duration> parsedConnectionTimeout;
52+
if (driverClassName.equals(POSTGRESQL.driverClassName())) {
53+
parsedConnectionTimeout = maybeParseDuration(
54+
connectionProperties.get(POSTGRES_CONNECT_TIMEOUT_KEY), ChronoUnit.SECONDS)
4955
.or(() -> Optional.of(POSTGRES_CONNECT_TIMEOUT_DEFAULT_DURATION));
50-
case MYSQL -> maybeParseDuration(connectionProperties.get("connectTimeout"), ChronoUnit.MILLIS);
51-
case MSSQLSERVER -> maybeParseDuration(connectionProperties.get("loginTimeout"), ChronoUnit.SECONDS);
52-
default -> maybeParseDuration(connectionProperties.get(CONNECT_TIMEOUT_KEY), ChronoUnit.SECONDS)
56+
} else if (driverClassName.equals(MYSQL.driverClassName())) {
57+
parsedConnectionTimeout = maybeParseDuration(connectionProperties.get("connectTimeout"),
58+
ChronoUnit.MILLIS);
59+
} else if (driverClassName.equals(MSSQLSERVER.driverClassName())) {
60+
parsedConnectionTimeout = maybeParseDuration(connectionProperties.get("loginTimeout"),
61+
ChronoUnit.SECONDS);
62+
} else {
63+
parsedConnectionTimeout = maybeParseDuration(connectionProperties.get(CONNECT_TIMEOUT_KEY), ChronoUnit.SECONDS)
5364
// Enforce minimum timeout duration for unspecified data sources.
5465
.filter(d -> d.compareTo(CONNECT_TIMEOUT_DEFAULT) >= 0);
5566
};

airbyte-cdk/java/airbyte-cdk/core/src/test/java/io/airbyte/cdk/db/jdbc/TestDefaultJdbcDatabase.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@ private DataSource getDataSourceFromConfig(final JsonNode config) {
102102
return DataSourceFactory.create(
103103
config.get(JdbcUtils.USERNAME_KEY).asText(),
104104
config.get(JdbcUtils.PASSWORD_KEY).asText(),
105-
DatabaseDriver.POSTGRESQL.getDriverClassName(),
106-
String.format(DatabaseDriver.POSTGRESQL.getUrlFormatString(),
105+
DatabaseDriver.POSTGRESQL.driverClassName(),
106+
String.format(DatabaseDriver.POSTGRESQL.urlFormatString(),
107107
config.get(JdbcUtils.HOST_KEY).asText(),
108108
config.get(JdbcUtils.PORT_KEY).asInt(),
109109
config.get(JdbcUtils.DATABASE_KEY).asText()));

airbyte-cdk/java/airbyte-cdk/core/src/test/java/io/airbyte/cdk/db/jdbc/TestJdbcUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ void setup() throws Exception {
8181
dataSource = DataSourceFactory.create(
8282
config.get(JdbcUtils.USERNAME_KEY).asText(),
8383
config.get(JdbcUtils.PASSWORD_KEY).asText(),
84-
DatabaseDriver.POSTGRESQL.getDriverClassName(),
85-
String.format(DatabaseDriver.POSTGRESQL.getUrlFormatString(),
84+
DatabaseDriver.POSTGRESQL.driverClassName(),
85+
String.format(DatabaseDriver.POSTGRESQL.urlFormatString(),
8686
config.get(JdbcUtils.HOST_KEY).asText(),
8787
config.get(JdbcUtils.PORT_KEY).asInt(),
8888
config.get(JdbcUtils.DATABASE_KEY).asText()));

airbyte-cdk/java/airbyte-cdk/core/src/test/java/io/airbyte/cdk/db/jdbc/TestStreamingJdbcDatabase.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ void setup() {
7070
final DataSource connectionPool = DataSourceFactory.create(
7171
config.get(JdbcUtils.USERNAME_KEY).asText(),
7272
config.get(JdbcUtils.PASSWORD_KEY).asText(),
73-
DatabaseDriver.POSTGRESQL.getDriverClassName(),
74-
String.format(DatabaseDriver.POSTGRESQL.getUrlFormatString(),
73+
DatabaseDriver.POSTGRESQL.driverClassName(),
74+
String.format(DatabaseDriver.POSTGRESQL.urlFormatString(),
7575
config.get(JdbcUtils.HOST_KEY).asText(),
7676
config.get(JdbcUtils.PORT_KEY).asInt(),
7777
config.get(JdbcUtils.DATABASE_KEY).asText()));

airbyte-cdk/java/airbyte-cdk/core/src/testFixtures/java/io/airbyte/cdk/testutils/TestDatabase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,10 @@ final public T initialized() {
123123
this.dataSource = DataSourceFactory.create(
124124
getUserName(),
125125
getPassword(),
126-
getDatabaseDriver().getDriverClassName(),
126+
getDatabaseDriver().driverClassName(),
127127
getJdbcUrl(),
128128
connectionProperties,
129-
JdbcConnector.getConnectionTimeout(connectionProperties, getDatabaseDriver().getDriverClassName()));
129+
JdbcConnector.getConnectionTimeout(connectionProperties, getDatabaseDriver().driverClassName()));
130130
this.dslContext = DSLContextFactory.create(dataSource, getSqlDialect());
131131
return self();
132132
}
@@ -179,7 +179,7 @@ final public DSLContext getDslContext() {
179179

180180
public String getJdbcUrl() {
181181
return String.format(
182-
getDatabaseDriver().getUrlFormatString(),
182+
getDatabaseDriver().urlFormatString(),
183183
getContainer().getHost(),
184184
getContainer().getFirstMappedPort(),
185185
getDatabaseName());

airbyte-cdk/java/airbyte-cdk/datastore-postgres/src/test/java/io/airbyte/cdk/db/PostgresUtilsTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ void setup() throws Exception {
5252
dataSource = DataSourceFactory.create(
5353
config.get(JdbcUtils.USERNAME_KEY).asText(),
5454
config.get(JdbcUtils.PASSWORD_KEY).asText(),
55-
DatabaseDriver.POSTGRESQL.getDriverClassName(),
56-
String.format(DatabaseDriver.POSTGRESQL.getUrlFormatString(),
55+
DatabaseDriver.POSTGRESQL.driverClassName(),
56+
String.format(DatabaseDriver.POSTGRESQL.urlFormatString(),
5757
config.get(JdbcUtils.HOST_KEY).asText(),
5858
config.get(JdbcUtils.PORT_KEY).asInt(),
5959
config.get(JdbcUtils.DATABASE_KEY).asText()));

airbyte-cdk/java/airbyte-cdk/db-sources/src/main/java/io/airbyte/cdk/integrations/source/jdbc/JdbcSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public class JdbcSource extends AbstractJdbcSource<JDBCType> implements Source {
2020
private static final Logger LOGGER = LoggerFactory.getLogger(JdbcSource.class);
2121

2222
public JdbcSource() {
23-
super(DatabaseDriver.POSTGRESQL.getDriverClassName(), AdaptiveStreamingQueryConfig::new, JdbcUtils.getDefaultSourceOperations());
23+
super(DatabaseDriver.POSTGRESQL.driverClassName(), AdaptiveStreamingQueryConfig::new, JdbcUtils.getDefaultSourceOperations());
2424
}
2525

2626
// no-op for JdbcSource since the config it receives is designed to be use for JDBC.

airbyte-cdk/java/airbyte-cdk/db-sources/src/test/java/io/airbyte/cdk/integrations/source/jdbc/DefaultJdbcSourceAcceptanceTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public static class PostgresTestSource extends AbstractJdbcSource<JDBCType> impl
9191

9292
private static final Logger LOGGER = LoggerFactory.getLogger(PostgresTestSource.class);
9393

94-
static final String DRIVER_CLASS = DatabaseDriver.POSTGRESQL.getDriverClassName();
94+
static final String DRIVER_CLASS = DatabaseDriver.POSTGRESQL.driverClassName();
9595

9696
public PostgresTestSource() {
9797
super(DRIVER_CLASS, AdaptiveStreamingQueryConfig::new, JdbcUtils.getDefaultSourceOperations());
@@ -101,7 +101,7 @@ public PostgresTestSource() {
101101
public JsonNode toDatabaseConfig(final JsonNode config) {
102102
final ImmutableMap.Builder<Object, Object> configBuilder = ImmutableMap.builder()
103103
.put(JdbcUtils.USERNAME_KEY, config.get(JdbcUtils.USERNAME_KEY).asText())
104-
.put(JdbcUtils.JDBC_URL_KEY, String.format(DatabaseDriver.POSTGRESQL.getUrlFormatString(),
104+
.put(JdbcUtils.JDBC_URL_KEY, String.format(DatabaseDriver.POSTGRESQL.urlFormatString(),
105105
config.get(JdbcUtils.HOST_KEY).asText(),
106106
config.get(JdbcUtils.PORT_KEY).asInt(),
107107
config.get(JdbcUtils.DATABASE_KEY).asText()));

airbyte-cdk/java/airbyte-cdk/db-sources/src/test/java/io/airbyte/cdk/integrations/source/jdbc/DefaultJdbcStressTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ private static class PostgresTestSource extends AbstractJdbcSource<JDBCType> imp
100100

101101
private static final Logger LOGGER = LoggerFactory.getLogger(PostgresTestSource.class);
102102

103-
static final String DRIVER_CLASS = DatabaseDriver.POSTGRESQL.getDriverClassName();
103+
static final String DRIVER_CLASS = DatabaseDriver.POSTGRESQL.driverClassName();
104104

105105
public PostgresTestSource() {
106106
super(DRIVER_CLASS, AdaptiveStreamingQueryConfig::new, JdbcUtils.getDefaultSourceOperations());
@@ -110,7 +110,7 @@ public PostgresTestSource() {
110110
public JsonNode toDatabaseConfig(final JsonNode config) {
111111
final ImmutableMap.Builder<Object, Object> configBuilder = ImmutableMap.builder()
112112
.put(JdbcUtils.USERNAME_KEY, config.get(JdbcUtils.USERNAME_KEY).asText())
113-
.put(JdbcUtils.JDBC_URL_KEY, String.format(DatabaseDriver.POSTGRESQL.getUrlFormatString(),
113+
.put(JdbcUtils.JDBC_URL_KEY, String.format(DatabaseDriver.POSTGRESQL.urlFormatString(),
114114
config.get(JdbcUtils.HOST_KEY).asText(),
115115
config.get(JdbcUtils.PORT_KEY).asInt(),
116116
config.get(JdbcUtils.DATABASE_KEY).asText()));

airbyte-cdk/java/airbyte-cdk/db-sources/src/test/java/io/airbyte/cdk/integrations/source/jdbc/JdbcSourceStressTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ private static class PostgresTestSource extends AbstractJdbcSource<JDBCType> imp
9494

9595
private static final Logger LOGGER = LoggerFactory.getLogger(PostgresTestSource.class);
9696

97-
static final String DRIVER_CLASS = DatabaseDriver.POSTGRESQL.getDriverClassName();
97+
static final String DRIVER_CLASS = DatabaseDriver.POSTGRESQL.driverClassName();
9898

9999
public PostgresTestSource() {
100100
super(DRIVER_CLASS, AdaptiveStreamingQueryConfig::new, JdbcUtils.getDefaultSourceOperations());
@@ -104,7 +104,7 @@ public PostgresTestSource() {
104104
public JsonNode toDatabaseConfig(final JsonNode config) {
105105
final ImmutableMap.Builder<Object, Object> configBuilder = ImmutableMap.builder()
106106
.put(JdbcUtils.USERNAME_KEY, config.get(JdbcUtils.USERNAME_KEY).asText())
107-
.put(JdbcUtils.JDBC_URL_KEY, String.format(DatabaseDriver.POSTGRESQL.getUrlFormatString(),
107+
.put(JdbcUtils.JDBC_URL_KEY, String.format(DatabaseDriver.POSTGRESQL.urlFormatString(),
108108
config.get(JdbcUtils.HOST_KEY).asText(),
109109
config.get(JdbcUtils.PORT_KEY).asInt(),
110110
config.get(JdbcUtils.DATABASE_KEY).asText()));

airbyte-cdk/java/airbyte-cdk/db-sources/src/testFixtures/java/io/airbyte/cdk/integrations/source/jdbc/test/JdbcSourceAcceptanceTest.java

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44

55
package io.airbyte.cdk.integrations.source.jdbc.test;
66

7+
import static io.airbyte.cdk.db.factory.DatabaseDriver.CLICKHOUSE;
8+
import static io.airbyte.cdk.db.factory.DatabaseDriver.MYSQL;
9+
import static io.airbyte.cdk.db.factory.DatabaseDriver.ORACLE;
10+
import static io.airbyte.cdk.db.factory.DatabaseDriver.SNOWFLAKE;
11+
import static io.airbyte.cdk.db.factory.DatabaseDriver.TERADATA;
712
import static io.airbyte.cdk.integrations.source.relationaldb.RelationalDbQueryUtils.enquoteIdentifier;
813
import static org.hamcrest.MatcherAssert.assertThat;
914
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -290,9 +295,8 @@ protected AirbyteCatalog filterOutOtherSchemas(final AirbyteCatalog catalog) {
290295
@Test
291296
protected void testDiscoverWithMultipleSchemas() throws Exception {
292297
// clickhouse and mysql do not have a concept of schemas, so this test does not make sense for them.
293-
switch (testdb.getDatabaseDriver()) {
294-
case MYSQL, CLICKHOUSE, TERADATA:
295-
return;
298+
if (testdb.getDatabaseDriver() == MYSQL || testdb.getDatabaseDriver() == CLICKHOUSE || testdb.getDatabaseDriver() == TERADATA) {
299+
return;
296300
}
297301

298302
// add table and data to a separate schema.
@@ -750,7 +754,7 @@ public void testIncrementalWithConcurrentInsertion() throws Exception {
750754
.map(r -> r.getRecord().getData().get(COL_NAME).asText())
751755
.toList();
752756
// some databases don't make insertion order guarantee when equal ordering value
753-
if (testdb.getDatabaseDriver().equals(DatabaseDriver.TERADATA) || testdb.getDatabaseDriver().equals(DatabaseDriver.ORACLE)) {
757+
if (testdb.getDatabaseDriver().equals(TERADATA) || testdb.getDatabaseDriver().equals(DatabaseDriver.ORACLE)) {
754758
assertThat(List.of("a", "b"), Matchers.containsInAnyOrder(firstSyncNames.toArray()));
755759
} else {
756760
assertEquals(List.of("a", "b"), firstSyncNames);
@@ -802,7 +806,7 @@ public void testIncrementalWithConcurrentInsertion() throws Exception {
802806
.toList();
803807

804808
// teradata doesn't make insertion order guarantee when equal ordering value
805-
if (testdb.getDatabaseDriver().equals(DatabaseDriver.TERADATA)) {
809+
if (testdb.getDatabaseDriver().equals(TERADATA)) {
806810
assertThat(List.of("c", "d", "e", "f"), Matchers.containsInAnyOrder(thirdSyncExpectedNames.toArray()));
807811
} else {
808812
assertEquals(List.of("c", "d", "e", "f"), thirdSyncExpectedNames);
@@ -1009,22 +1013,22 @@ protected void createSchemas() {
10091013
}
10101014

10111015
private JsonNode convertIdBasedOnDatabase(final int idValue) {
1012-
return switch (testdb.getDatabaseDriver()) {
1013-
case ORACLE, SNOWFLAKE -> Jsons.jsonNode(BigDecimal.valueOf(idValue));
1014-
default -> Jsons.jsonNode(idValue);
1015-
};
1016+
if (testdb.getDatabaseDriver() == ORACLE || testdb.getDatabaseDriver() == SNOWFLAKE) {
1017+
return Jsons.jsonNode(BigDecimal.valueOf(idValue));
1018+
}
1019+
return Jsons.jsonNode(idValue);
10161020
}
10171021

10181022
private String getDefaultSchemaName() {
10191023
return supportsSchemas() ? SCHEMA_NAME : null;
10201024
}
10211025

10221026
protected String getDefaultNamespace() {
1023-
return switch (testdb.getDatabaseDriver()) {
1027+
if (testdb.getDatabaseDriver() == MYSQL || testdb.getDatabaseDriver() == CLICKHOUSE || testdb.getDatabaseDriver() == TERADATA) {
10241028
// mysql does not support schemas, it namespaces using database names instead.
1025-
case MYSQL, CLICKHOUSE, TERADATA -> testdb.getDatabaseName();
1026-
default -> SCHEMA_NAME;
1027-
};
1029+
return testdb.getDatabaseName();
1030+
}
1031+
return SCHEMA_NAME;
10281032
}
10291033

10301034
protected static void setEmittedAtToNull(final Iterable<AirbyteMessage> messages) {

airbyte-integrations/connectors/source-mssql/src/main/java/io/airbyte/integrations/source/mssql/MssqlSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public class MssqlSource extends AbstractJdbcSource<JDBCType> implements Source
110110
"""
111111
SELECT CASE WHEN (SELECT TOP 1 1 FROM "%s"."%s" WHERE "%s" IS NULL)=1 then 1 else 0 end as %s
112112
""";
113-
public static final String DRIVER_CLASS = DatabaseDriver.MSSQLSERVER.getDriverClassName();
113+
public static final String DRIVER_CLASS = DatabaseDriver.MSSQLSERVER.driverClassName();
114114
public static final String MSSQL_CDC_OFFSET = "mssql_cdc_offset";
115115
public static final String MSSQL_DB_HISTORY = "mssql_db_history";
116116
public static final String IS_COMPRESSED = "is_compressed";

0 commit comments

Comments
 (0)