This is an automated email from the ASF dual-hosted git repository.
gaojun2048 pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new d70ec61f35 [Improve][Jdbc] Quotes the identifier for table path (#6951)
d70ec61f35 is described below
commit d70ec61f354dd458014c74b37785d68e297f76fa
Author: hailin0 <[email protected]>
AuthorDate: Fri Jun 7 13:41:22 2024 +0800
[Improve][Jdbc] Quotes the identifier for table path (#6951)
---
.../seatunnel/jdbc/internal/dialect/dm/DmdbDialect.java | 2 +-
.../seatunnel/jdbc/internal/dialect/iris/IrisDialect.java | 4 ++--
.../seatunnel/jdbc/internal/dialect/oracle/OracleDialect.java | 6 +++---
.../jdbc/internal/dialect/sqlserver/SqlServerDialect.java | 11 ++++++++---
.../jdbc/internal/dialect/vertica/VerticaDialect.java | 4 ++--
.../seatunnel/jdbc/internal/dialect/xugu/XuguDialect.java | 2 +-
6 files changed, 17 insertions(+), 12 deletions(-)
diff --git
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbDialect.java
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbDialect.java
index 460de0272f..da652d6b14 100644
---
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbDialect.java
+++
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbDialect.java
@@ -131,7 +131,7 @@ public class DmdbDialect implements JdbcDialect {
@Override
public String tableIdentifier(TablePath tablePath) {
- return tablePath.getSchemaAndTableName();
+ return tablePath.getSchemaAndTableName("\"");
}
// Compatibility Both database = mode and table-names = schema.tableName
are configured
diff --git
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/iris/IrisDialect.java
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/iris/IrisDialect.java
index c89768f430..5be550cdef 100644
---
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/iris/IrisDialect.java
+++
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/iris/IrisDialect.java
@@ -102,7 +102,7 @@ public class IrisDialect implements JdbcDialect {
@Override
public String tableIdentifier(TablePath tablePath) {
- return tablePath.getSchemaAndTableName();
+ return quoteIdentifier(tablePath.getSchemaAndTableName());
}
@Override
@@ -172,7 +172,7 @@ public class IrisDialect implements JdbcDialect {
quotedColumn,
chunkSize,
quotedColumn,
- table.getTablePath().getSchemaAndTableName(),
+ tableIdentifier(table.getTablePath()),
quotedColumn,
quotedColumn);
}
diff --git
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/oracle/OracleDialect.java
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/oracle/OracleDialect.java
index 8dedc6dfc1..1bf1466949 100644
---
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/oracle/OracleDialect.java
+++
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/oracle/OracleDialect.java
@@ -173,7 +173,7 @@ public class OracleDialect implements JdbcDialect {
@Override
public String tableIdentifier(TablePath tablePath) {
- return tablePath.getSchemaAndTableName();
+ return quoteIdentifier(tablePath.getSchemaAndTableName());
}
@Override
@@ -199,7 +199,7 @@ public class OracleDialect implements JdbcDialect {
String analyzeTable =
String.format(
"analyze table %s compute statistics for table",
- tablePath.getSchemaAndTableName());
+ tableIdentifier(tablePath));
String rowCountQuery =
String.format(
"select NUM_ROWS from all_tables where OWNER =
'%s' AND TABLE_NAME = '%s' ",
@@ -253,7 +253,7 @@ public class OracleDialect implements JdbcDialect {
+ ") WHERE ROWNUM <= %s",
quotedColumn,
quotedColumn,
- table.getTablePath().getSchemaAndTableName(),
+ tableIdentifier(table.getTablePath()),
quotedColumn,
quotedColumn,
chunkSize);
diff --git
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerDialect.java
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerDialect.java
index 87e7418966..aa24681224 100644
---
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerDialect.java
+++
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerDialect.java
@@ -119,8 +119,8 @@ public class SqlServerDialect implements JdbcDialect {
+ " UPDATE SET %s"
+ " WHEN NOT MATCHED THEN"
+ " INSERT (%s) VALUES (%s);",
- database,
- tableName,
+ quoteDatabaseIdentifier(database),
+ quoteIdentifier(tableName),
usingClause,
onConditions,
updateSetClause,
@@ -152,6 +152,11 @@ public class SqlServerDialect implements JdbcDialect {
return "[" + identifier + "]";
}
+ @Override
+ public String tableIdentifier(TablePath tablePath) {
+ return quoteIdentifier(tablePath.getFullName());
+ }
+
@Override
public TablePath parse(String tablePath) {
return TablePath.of(tablePath, true);
@@ -237,7 +242,7 @@ public class SqlServerDialect implements JdbcDialect {
quotedColumn,
chunkSize,
quotedColumn,
- table.getTablePath().getFullName(),
+ tableIdentifier(table.getTablePath()),
quotedColumn,
quotedColumn);
}
diff --git
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/vertica/VerticaDialect.java
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/vertica/VerticaDialect.java
index cff071e314..ccb889bf14 100644
---
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/vertica/VerticaDialect.java
+++
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/vertica/VerticaDialect.java
@@ -97,8 +97,8 @@ public class VerticaDialect implements JdbcDialect {
+ " UPDATE SET %s"
+ " WHEN NOT MATCHED THEN"
+ " INSERT (%s) VALUES (%s)",
- database,
- tableName,
+ quoteDatabaseIdentifier(database),
+ quoteIdentifier(tableName),
usingClause,
onConditions,
updateSetClause,
diff --git
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/xugu/XuguDialect.java
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/xugu/XuguDialect.java
index 1ef617b393..7340b099b8 100644
---
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/xugu/XuguDialect.java
+++
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/xugu/XuguDialect.java
@@ -97,7 +97,7 @@ public class XuguDialect implements JdbcDialect {
@Override
public String tableIdentifier(TablePath tablePath) {
- return tablePath.getSchemaAndTableName();
+ return quoteIdentifier(tablePath.getSchemaAndTableName());
}
@Override