Skip to content

Commit d70ec61

Browse files
authored
[Improve][Jdbc] Quotes the identifier for table path (#6951)
1 parent 068bbf7 commit d70ec61

File tree

6 files changed

+17
-12
lines changed

6 files changed

+17
-12
lines changed

seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbDialect.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public TablePath parse(String tablePath) {
131131

132132
@Override
133133
public String tableIdentifier(TablePath tablePath) {
134-
return tablePath.getSchemaAndTableName();
134+
return tablePath.getSchemaAndTableName("\"");
135135
}
136136

137137
// Compatibility Both database = mode and table-names = schema.tableName are configured

seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/iris/IrisDialect.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public TablePath parse(String tablePath) {
102102

103103
@Override
104104
public String tableIdentifier(TablePath tablePath) {
105-
return tablePath.getSchemaAndTableName();
105+
return quoteIdentifier(tablePath.getSchemaAndTableName());
106106
}
107107

108108
@Override
@@ -172,7 +172,7 @@ public Object queryNextChunkMax(
172172
quotedColumn,
173173
chunkSize,
174174
quotedColumn,
175-
table.getTablePath().getSchemaAndTableName(),
175+
tableIdentifier(table.getTablePath()),
176176
quotedColumn,
177177
quotedColumn);
178178
}

seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/oracle/OracleDialect.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ public TablePath parse(String tablePath) {
173173

174174
@Override
175175
public String tableIdentifier(TablePath tablePath) {
176-
return tablePath.getSchemaAndTableName();
176+
return quoteIdentifier(tablePath.getSchemaAndTableName());
177177
}
178178

179179
@Override
@@ -199,7 +199,7 @@ public Long approximateRowCntStatement(Connection connection, JdbcSourceTable ta
199199
String analyzeTable =
200200
String.format(
201201
"analyze table %s compute statistics for table",
202-
tablePath.getSchemaAndTableName());
202+
tableIdentifier(tablePath));
203203
String rowCountQuery =
204204
String.format(
205205
"select NUM_ROWS from all_tables where OWNER = '%s' AND TABLE_NAME = '%s' ",
@@ -253,7 +253,7 @@ public Object queryNextChunkMax(
253253
+ ") WHERE ROWNUM <= %s",
254254
quotedColumn,
255255
quotedColumn,
256-
table.getTablePath().getSchemaAndTableName(),
256+
tableIdentifier(table.getTablePath()),
257257
quotedColumn,
258258
quotedColumn,
259259
chunkSize);

seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerDialect.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,8 @@ public Optional<String> getUpsertStatement(
119119
+ " UPDATE SET %s"
120120
+ " WHEN NOT MATCHED THEN"
121121
+ " INSERT (%s) VALUES (%s);",
122-
database,
123-
tableName,
122+
quoteDatabaseIdentifier(database),
123+
quoteIdentifier(tableName),
124124
usingClause,
125125
onConditions,
126126
updateSetClause,
@@ -152,6 +152,11 @@ public String quoteDatabaseIdentifier(String identifier) {
152152
return "[" + identifier + "]";
153153
}
154154

155+
@Override
156+
public String tableIdentifier(TablePath tablePath) {
157+
return quoteIdentifier(tablePath.getFullName());
158+
}
159+
155160
@Override
156161
public TablePath parse(String tablePath) {
157162
return TablePath.of(tablePath, true);
@@ -237,7 +242,7 @@ public Object queryNextChunkMax(
237242
quotedColumn,
238243
chunkSize,
239244
quotedColumn,
240-
table.getTablePath().getFullName(),
245+
tableIdentifier(table.getTablePath()),
241246
quotedColumn,
242247
quotedColumn);
243248
}

seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/vertica/VerticaDialect.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ public Optional<String> getUpsertStatement(
9797
+ " UPDATE SET %s"
9898
+ " WHEN NOT MATCHED THEN"
9999
+ " INSERT (%s) VALUES (%s)",
100-
database,
101-
tableName,
100+
quoteDatabaseIdentifier(database),
101+
quoteIdentifier(tableName),
102102
usingClause,
103103
onConditions,
104104
updateSetClause,

seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/xugu/XuguDialect.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public TablePath parse(String tablePath) {
9797

9898
@Override
9999
public String tableIdentifier(TablePath tablePath) {
100-
return tablePath.getSchemaAndTableName();
100+
return quoteIdentifier(tablePath.getSchemaAndTableName());
101101
}
102102

103103
@Override

0 commit comments

Comments
 (0)