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);

Reply via email to