Skip to content

Commit c60c40e

Browse files
committed
Merge remote-tracking branch 'origin/main' into feature/bug-fix-for-nonascii-column-name
2 parents 20555ee + 881c4f1 commit c60c40e

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/main/java/org/embulk/output/DatabricksOutputPlugin.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,12 @@ public Optional<JdbcSchema> newJdbcSchemaFromTableIfExists(
180180
return Optional.empty();
181181
}
182182

183+
DatabricksOutputConnection conn = (DatabricksOutputConnection) connection;
183184
DatabaseMetaData dbm = connection.getMetaData();
184185
String escape = dbm.getSearchStringEscape();
185186

186187
ResultSet rs =
187-
dbm.getPrimaryKeys(table.getDatabase(), table.getSchemaName(), table.getTableName());
188+
dbm.getPrimaryKeys(conn.getCatalogName(), table.getSchemaName(), table.getTableName());
188189
final HashSet<String> primaryKeysBuilder = new HashSet<>();
189190
try {
190191
while (rs.next()) {
@@ -207,7 +208,7 @@ public Optional<JdbcSchema> newJdbcSchemaFromTableIfExists(
207208
// https://docs.databricks.com/en/sql/language-manual/data-types/timestamp-ntz-type.html#notes
208209
rs =
209210
dbm.getColumns(
210-
JdbcUtils.escapeSearchString(table.getDatabase(), escape),
211+
JdbcUtils.escapeSearchString(conn.getCatalogName(), escape),
211212
JdbcUtils.escapeSearchString(table.getSchemaName(), escape),
212213
JdbcUtils.escapeSearchString(table.getTableName(), escape),
213214
null);

src/main/java/org/embulk/output/databricks/DatabricksOutputConnection.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public boolean tableExists(TableIdentifier table) throws SQLException {
4545
try (ResultSet rs =
4646
connection
4747
.getMetaData()
48-
.getTables(table.getDatabase(), table.getSchemaName(), table.getTableName(), null)) {
48+
.getTables(catalogName, table.getSchemaName(), table.getTableName(), null)) {
4949
while (rs.next()) {
5050
if (isAvailableTableMetadataInConnection(rs, table)) {
5151
return true;
@@ -62,6 +62,10 @@ public boolean isAvailableTableMetadataInConnection(ResultSet rs, TableIdentifie
6262
// null
6363
// and one Databricks connection has multiple available catalogs (databases).
6464

65+
// NOTE: maybe this logic is not necessary anymore after this PR:
66+
// https://github.com/trocco-io/embulk-output-databricks/pull/11
67+
// But I'm not sure, so I'll keep it for now.
68+
6569
if (tableIdentifier.getDatabase() == null) {
6670
logger.trace("tableIdentifier.getDatabase() == null, check by instance variable");
6771
if (!rs.getString("TABLE_CAT").equalsIgnoreCase(catalogName)) {
@@ -305,4 +309,8 @@ private String buildColumns(JdbcSchema schema, String prefix) {
305309
}
306310
return sb.toString();
307311
}
312+
313+
public String getCatalogName() {
314+
return catalogName;
315+
}
308316
}

0 commit comments

Comments
 (0)