This is an automated email from the ASF dual-hosted git repository.

wanghailin 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 3522eb157c [Feature][Connector-V2][PostgresSql] add JDBC source 
support string type as partition key (#6079)
3522eb157c is described below

commit 3522eb157c701d68a2cbe8944fba39d974c3b3e3
Author: ZhilinLi <[email protected]>
AuthorDate: Tue Dec 26 10:15:29 2023 +0800

    [Feature][Connector-V2][PostgresSql] add JDBC source support string type as 
partition key (#6079)
---
 .../seatunnel/jdbc/internal/dialect/psql/PostgresDialect.java        | 5 +++++
 .../src/test/resources/jdbc_postgres_source_and_sink.conf            | 2 ++
 2 files changed, 7 insertions(+)

diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/psql/PostgresDialect.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/psql/PostgresDialect.java
index 36075a307e..9a4076fe2a 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/psql/PostgresDialect.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/psql/PostgresDialect.java
@@ -64,6 +64,11 @@ public class PostgresDialect implements JdbcDialect {
         return new PostgresTypeMapper();
     }
 
+    @Override
+    public String hashModForField(String fieldName, int mod) {
+        return "(ABS(HASHTEXT(" + quoteIdentifier(fieldName) + ")) % " + mod + 
")";
+    }
+
     @Override
     public Optional<String> getUpsertStatement(
             String database, String tableName, String[] fieldNames, String[] 
uniqueKeyFields) {
diff --git 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-3/src/test/resources/jdbc_postgres_source_and_sink.conf
 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-3/src/test/resources/jdbc_postgres_source_and_sink.conf
index 982af8efb2..5b00078006 100644
--- 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-3/src/test/resources/jdbc_postgres_source_and_sink.conf
+++ 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-3/src/test/resources/jdbc_postgres_source_and_sink.conf
@@ -29,6 +29,8 @@ source{
         query ="""select gid, text_col, varchar_col, char_col, boolean_col, 
smallint_col, integer_col, bigint_col, decimal_col, numeric_col, real_col, 
double_precision_col,
                          smallserial_col, serial_col, bigserial_col, date_col, 
timestamp_col, bpchar_col, age, name, point, linestring, polygon_colums, 
multipoint,
                          multilinestring, multipolygon, geometrycollection, 
geog, json_col, jsonb_col,xml_col from pg_e2e_source_table"""
+      partition_column = "varchar_col"
+      partition_num = 2
     }
 }
 

Reply via email to