Skip to content

Commit 09a97cc

Browse files
authored
Merge pull request #188 from databricks/fix-like-metadata
[PECO-1685] Fix use of new Metadata client for Metadata calls
2 parents 22837fe + ca1b335 commit 09a97cc

File tree

3 files changed

+24
-17
lines changed

3 files changed

+24
-17
lines changed

src/main/java/com/databricks/jdbc/client/impl/helper/CommandConstants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class CommandConstants {
1313
public static final String IN_ABSOLUTE_SCHEMA_SQL = " IN SCHEMA %s";
1414
public static final String IN_ABSOLUTE_TABLE_SQL = " IN TABLE %s";
1515
public static final String SHOW_SCHEMA_IN_CATALOG_SQL = "SHOW SCHEMAS IN %s";
16-
public static final String LIKE_SQL = " LIKE `%s`";
16+
public static final String LIKE_SQL = " LIKE '%s'";
1717
public static final String SCHEMA_LIKE_SQL = " SCHEMA" + LIKE_SQL;
1818
public static final String TABLE_LIKE_SQL = " TABLE" + LIKE_SQL;
1919
public static final String SHOW_TABLES_SQL = "SHOW TABLES" + IN_CATALOG_SQL;

src/main/java/com/databricks/jdbc/client/impl/helper/MetadataResultSetBuilder.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import com.databricks.jdbc.client.StatementType;
77
import com.databricks.jdbc.core.DatabricksResultSet;
8+
import com.databricks.jdbc.core.DatabricksSQLException;
89
import com.databricks.sdk.service.sql.StatementState;
910
import com.databricks.sdk.service.sql.StatementStatus;
1011
import java.sql.ResultSet;
@@ -62,8 +63,14 @@ private static List<List<Object>> getRows(ResultSet resultSet, List<ResultColumn
6263
while (resultSet.next()) {
6364
List<Object> row = new ArrayList<>();
6465
for (ResultColumn column : columns) {
65-
Object object = resultSet.getObject(column.getResultSetColumnName());
66-
if (object == null) {
66+
Object object;
67+
try {
68+
object = resultSet.getObject(column.getResultSetColumnName());
69+
if (object == null) {
70+
object = NULL_STRING;
71+
}
72+
} catch (DatabricksSQLException e) {
73+
// Remove non-relevant columns from the obtained result set
6774
object = NULL_STRING;
6875
}
6976
row.add(object);

src/test/java/com/databricks/jdbc/client/impl/DatabricksNewMetadataSdkClientTest.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class DatabricksNewMetadataSdkClientTest {
3535
private static Stream<Arguments> listTableTestParams() {
3636
return Stream.of(
3737
Arguments.of(
38-
"SHOW TABLES IN CATALOG catalog1 SCHEMA LIKE `testSchema` LIKE `testTable`",
38+
"SHOW TABLES IN CATALOG catalog1 SCHEMA LIKE 'testSchema' LIKE 'testTable'",
3939
TEST_CATALOG,
4040
TEST_SCHEMA,
4141
TEST_TABLE,
@@ -47,13 +47,13 @@ private static Stream<Arguments> listTableTestParams() {
4747
null,
4848
"test for all tables and schemas"),
4949
Arguments.of(
50-
"SHOW TABLES IN CATALOG catalog1 SCHEMA LIKE `testSchema`",
50+
"SHOW TABLES IN CATALOG catalog1 SCHEMA LIKE 'testSchema'",
5151
TEST_CATALOG,
5252
TEST_SCHEMA,
5353
null,
5454
"test for all tables"),
5555
Arguments.of(
56-
"SHOW TABLES IN CATALOG catalog1 LIKE `testTable`",
56+
"SHOW TABLES IN CATALOG catalog1 LIKE 'testTable'",
5757
TEST_CATALOG,
5858
null,
5959
TEST_TABLE,
@@ -62,26 +62,26 @@ private static Stream<Arguments> listTableTestParams() {
6262

6363
private static Stream<Arguments> listSchemasTestParams() {
6464
return Stream.of(
65-
Arguments.of("SHOW SCHEMAS IN catalog1 LIKE `testSchema`", TEST_SCHEMA, "test for schema"),
65+
Arguments.of("SHOW SCHEMAS IN catalog1 LIKE 'testSchema'", TEST_SCHEMA, "test for schema"),
6666
Arguments.of("SHOW SCHEMAS IN catalog1", null, "test for all schemas"));
6767
}
6868

6969
private static Stream<Arguments> listFunctionsTestParams() {
7070
return Stream.of(
7171
Arguments.of(
72-
"SHOW FUNCTIONS IN CATALOG catalog1 SCHEMA LIKE `testSchema` LIKE `functionPattern`",
72+
"SHOW FUNCTIONS IN CATALOG catalog1 SCHEMA LIKE 'testSchema' LIKE 'functionPattern'",
7373
TEST_CATALOG,
7474
TEST_SCHEMA,
7575
TEST_FUNCTION_PATTERN,
7676
"test for get functions"),
7777
Arguments.of(
78-
"SHOW FUNCTIONS IN CATALOG catalog1 LIKE `functionPattern`",
78+
"SHOW FUNCTIONS IN CATALOG catalog1 LIKE 'functionPattern'",
7979
TEST_CATALOG,
8080
null,
8181
TEST_FUNCTION_PATTERN,
8282
"test for get functions without schema"),
8383
Arguments.of(
84-
"SHOW FUNCTIONS IN CATALOG catalog1 SCHEMA LIKE `testSchema`",
84+
"SHOW FUNCTIONS IN CATALOG catalog1 SCHEMA LIKE 'testSchema'",
8585
TEST_CATALOG,
8686
TEST_SCHEMA,
8787
null,
@@ -91,7 +91,7 @@ private static Stream<Arguments> listFunctionsTestParams() {
9191
private static Stream<Arguments> listColumnTestParams() {
9292
return Stream.of(
9393
Arguments.of(
94-
"SHOW COLUMNS IN CATALOG catalog1 SCHEMA LIKE `testSchema` TABLE LIKE `testTable`",
94+
"SHOW COLUMNS IN CATALOG catalog1 SCHEMA LIKE 'testSchema' TABLE LIKE 'testTable'",
9595
TEST_CATALOG,
9696
TEST_TABLE,
9797
TEST_SCHEMA,
@@ -105,42 +105,42 @@ private static Stream<Arguments> listColumnTestParams() {
105105
null,
106106
"test for all tables and schemas"),
107107
Arguments.of(
108-
"SHOW COLUMNS IN CATALOG catalog1 SCHEMA LIKE `testSchema`",
108+
"SHOW COLUMNS IN CATALOG catalog1 SCHEMA LIKE 'testSchema'",
109109
TEST_CATALOG,
110110
null,
111111
TEST_SCHEMA,
112112
null,
113113
"test for schema"),
114114
Arguments.of(
115-
"SHOW COLUMNS IN CATALOG catalog1 TABLE LIKE `testTable`",
115+
"SHOW COLUMNS IN CATALOG catalog1 TABLE LIKE 'testTable'",
116116
TEST_CATALOG,
117117
TEST_TABLE,
118118
null,
119119
null,
120120
"test for table"),
121121
Arguments.of(
122-
"SHOW COLUMNS IN CATALOG catalog1 SCHEMA LIKE `testSchema` TABLE LIKE `testTable` LIKE `testColumn`",
122+
"SHOW COLUMNS IN CATALOG catalog1 SCHEMA LIKE 'testSchema' TABLE LIKE 'testTable' LIKE 'testColumn'",
123123
TEST_CATALOG,
124124
TEST_TABLE,
125125
TEST_SCHEMA,
126126
TEST_COLUMN,
127127
"test for table, schema and column"),
128128
Arguments.of(
129-
"SHOW COLUMNS IN CATALOG catalog1 LIKE `testColumn`",
129+
"SHOW COLUMNS IN CATALOG catalog1 LIKE 'testColumn'",
130130
TEST_CATALOG,
131131
null,
132132
null,
133133
TEST_COLUMN,
134134
"test for column"),
135135
Arguments.of(
136-
"SHOW COLUMNS IN CATALOG catalog1 SCHEMA LIKE `testSchema` LIKE `testColumn`",
136+
"SHOW COLUMNS IN CATALOG catalog1 SCHEMA LIKE 'testSchema' LIKE 'testColumn'",
137137
TEST_CATALOG,
138138
null,
139139
TEST_SCHEMA,
140140
TEST_COLUMN,
141141
"test for schema and column"),
142142
Arguments.of(
143-
"SHOW COLUMNS IN CATALOG catalog1 TABLE LIKE `testTable` LIKE `testColumn`",
143+
"SHOW COLUMNS IN CATALOG catalog1 TABLE LIKE 'testTable' LIKE 'testColumn'",
144144
TEST_CATALOG,
145145
TEST_TABLE,
146146
null,

0 commit comments

Comments
 (0)