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: 老王 <58297137+chl-...@users.noreply.github.com> 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);