Skip to content

Commit 22837fe

Browse files
authored
Merge pull request #187 from databricks/madhav-db/params
Adds Parameters in Connection String to switch between Metadata Clients
2 parents a19c42e + af31b08 commit 22837fe

File tree

4 files changed

+19
-2
lines changed

4 files changed

+19
-2
lines changed

src/main/java/com/databricks/jdbc/core/DatabricksSession.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.databricks.jdbc.client.DatabricksClientType;
55
import com.databricks.jdbc.client.DatabricksMetadataClient;
66
import com.databricks.jdbc.client.impl.sdk.DatabricksMetadataSdkClient;
7+
import com.databricks.jdbc.client.impl.sdk.DatabricksNewMetadataSdkClient;
78
import com.databricks.jdbc.client.impl.sdk.DatabricksSdkClient;
89
import com.databricks.jdbc.client.impl.thrift.DatabricksThriftServiceClient;
910
import com.databricks.jdbc.core.types.CompressionType;
@@ -52,8 +53,13 @@ public DatabricksSession(IDatabricksConnectionContext connectionContext)
5253
this.databricksMetadataClient = null;
5354
} else {
5455
this.databricksClient = new DatabricksSdkClient(connectionContext);
55-
this.databricksMetadataClient =
56-
new DatabricksMetadataSdkClient((DatabricksSdkClient) databricksClient);
56+
if (connectionContext.getUseLegacyMetadata()) {
57+
this.databricksMetadataClient =
58+
new DatabricksMetadataSdkClient((DatabricksSdkClient) databricksClient);
59+
} else {
60+
this.databricksMetadataClient =
61+
new DatabricksNewMetadataSdkClient((DatabricksSdkClient) databricksClient);
62+
}
5763
}
5864
this.isSessionOpen = false;
5965
this.sessionInfo = null;

src/main/java/com/databricks/jdbc/driver/DatabricksConnectionContext.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,13 @@ public DatabricksClientType getClientType() {
292292
return DatabricksClientType.SQL_EXEC;
293293
}
294294

295+
@Override
296+
public Boolean getUseLegacyMetadata() {
297+
// Defaults to use legacy metadata client
298+
return getParameter(DatabricksJdbcConstants.USE_LEGACY_METADATA) == null
299+
|| getParameter(DatabricksJdbcConstants.USE_LEGACY_METADATA).equals("1");
300+
}
301+
295302
private static boolean nullOrEmptyString(String s) {
296303
return s == null || s.isEmpty();
297304
}

src/main/java/com/databricks/jdbc/driver/DatabricksJdbcConstants.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,4 +130,6 @@ public enum FakeServiceType {
130130
}
131131

132132
public static final String USE_THRIFT_CLIENT = "usethriftclient";
133+
134+
public static final String USE_LEGACY_METADATA = "uselegacymetadata";
133135
}

src/main/java/com/databricks/jdbc/driver/IDatabricksConnectionContext.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,6 @@ public static AuthMech parseAuthMech(String authMech) {
117117
int getAsyncExecPollInterval();
118118

119119
DatabricksClientType getClientType();
120+
121+
Boolean getUseLegacyMetadata();
120122
}

0 commit comments

Comments
 (0)