This is an automated email from the ASF dual-hosted git repository.
fanjia 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 9fe844f62a [bugfix] fix pgsql create table comment special string bug
(#7022)
9fe844f62a is described below
commit 9fe844f62a3382f44a0b55d6036d63d9372b8578
Author: 老王 <[email protected]>
AuthorDate: Thu Jun 20 10:18:16 2024 +0800
[bugfix] fix pgsql create table comment special string bug (#7022)
---
.../seatunnel/jdbc/catalog/psql/PostgresCreateTableSqlBuilder.java | 2 +-
.../apache/seatunnel/connectors/seatunnel/jdbc/JdbcPostgresIT.java | 7 ++++++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/psql/PostgresCreateTableSqlBuilder.java
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/psql/PostgresCreateTableSqlBuilder.java
index bcada004a5..c3f414a0a5 100644
---
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/psql/PostgresCreateTableSqlBuilder.java
+++
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/psql/PostgresCreateTableSqlBuilder.java
@@ -151,7 +151,7 @@ public class PostgresCreateTableSqlBuilder {
columnCommentSql
.append(CatalogUtils.quoteIdentifier(column.getName(),
fieldIde, "\""))
.append(CatalogUtils.quoteIdentifier(" IS '", fieldIde))
- .append(column.getComment())
+ .append(column.getComment().replace("'", "''"))
.append("'");
return columnCommentSql.toString();
}
diff --git
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-3/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcPostgresIT.java
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-3/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcPostgresIT.java
index 7961bcb474..34c2082eb3 100644
---
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-3/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcPostgresIT.java
+++
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-3/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcPostgresIT.java
@@ -108,7 +108,7 @@ public class JdbcPostgresIT extends TestSuiteBase
implements TestResource {
+ " json_col json NOT NULL,\n"
+ " jsonb_col jsonb NOT NULL,\n"
+ " xml_col xml NOT NULL\n"
- + ")";
+ + ");comment on column pg_e2e_source_table.uuid_col is
'\"#¥%……&*();;'',,.\\.``````//''@特殊注释''\\\\''\"'";
private static final String PG_SINK_DDL =
"CREATE TABLE IF NOT EXISTS pg_e2e_sink_table (\n"
+ " gid SERIAL PRIMARY KEY,\n"
@@ -482,6 +482,11 @@ public class JdbcPostgresIT extends TestSuiteBase
implements TestResource {
postgresCatalog.createTable(tablePathPgSink, catalogTable, true);
boolean tableExistsAfter =
postgresCatalog.tableExists(tablePathPgSink);
Assertions.assertTrue(tableExistsAfter);
+ // comment
+ final CatalogTable table = postgresCatalog.getTable(tablePathPgSink);
+ Assertions.assertEquals(
+ table.getTableSchema().getColumns().get(1).getComment(),
+ "\"#¥%……&*();;',,.\\.``````//'@特殊注释'\\\\'\"");
// isExistsData ?
boolean existsDataBefore =
postgresCatalog.isExistsData(tablePathPgSink);
Assertions.assertFalse(existsDataBefore);