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

zhonghongsheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 78b91f7dd9f Fix openGauss mpp decoding plugin decode single quote at 
increment task (#25895)
78b91f7dd9f is described below

commit 78b91f7dd9f6def1500fcae9268bebcb52ee14d3
Author: Xinze Guo <[email protected]>
AuthorDate: Thu May 25 23:20:16 2023 +0800

    Fix openGauss mpp decoding plugin decode single quote at increment task 
(#25895)
    
    * Fix openGauss mpp decoding plugin decode single quote
    
    * Fix sonar issue
    
    * Use ThreadLocalRandom replace SecureRandom
---
 .../data/pipeline/mysql/ingest/MySQLIncrementalDumper.java            | 4 ++--
 .../pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java     | 2 +-
 .../test/e2e/data/pipeline/framework/helper/PipelineCaseHelper.java   | 3 +--
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumper.java
 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumper.java
index 793de1271ae..4e3fc6bc0b5 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumper.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumper.java
@@ -58,8 +58,8 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
-import java.util.Random;
 import java.util.Set;
+import java.util.concurrent.ThreadLocalRandom;
 
 /**
  * MySQL incremental dumper.
@@ -89,7 +89,7 @@ public final class MySQLIncrementalDumper extends 
AbstractLifecycleExecutor impl
         YamlJdbcConfiguration jdbcConfig = 
((StandardPipelineDataSourceConfiguration) 
dumperConfig.getDataSourceConfig()).getJdbcConfig();
         log.info("incremental dump, jdbcUrl={}", jdbcConfig.getUrl());
         DataSourceMetaData metaData = 
TypedSPILoader.getService(DatabaseType.class, 
"MySQL").getDataSourceMetaData(jdbcConfig.getUrl(), null);
-        ConnectInfo connectInfo = new ConnectInfo(new Random().nextInt(), 
metaData.getHostname(), metaData.getPort(), jdbcConfig.getUsername(), 
jdbcConfig.getPassword());
+        ConnectInfo connectInfo = new 
ConnectInfo(ThreadLocalRandom.current().nextInt(), metaData.getHostname(), 
metaData.getPort(), jdbcConfig.getUsername(), jdbcConfig.getPassword());
         client = new MySQLClient(connectInfo, dumperConfig.isDecodeWithTX());
         catalog = metaData.getCatalog();
     }
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java
 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java
index 464852d7d2d..c4c0fb5b76f 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java
@@ -206,7 +206,7 @@ public final class MppdbDecodingPlugin implements 
DecodingPlugin {
             case "character":
             case "nvarchar2":
             default:
-                return decodeString(data);
+                return decodeString(data).replace("''", "'");
         }
     }
     
diff --git 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/framework/helper/PipelineCaseHelper.java
 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/framework/helper/PipelineCaseHelper.java
index 04a3400cb46..edfa67386cf 100644
--- 
a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/framework/helper/PipelineCaseHelper.java
+++ 
b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/data/pipeline/framework/helper/PipelineCaseHelper.java
@@ -138,8 +138,7 @@ public final class PipelineCaseHelper {
     public static String generateJsonString(final int length, final boolean 
useUnicodeCharacter) {
         String value;
         if (useUnicodeCharacter) {
-            // TODO openGauss incremental task parse single quote not 
correctly now
-            value = Strings.repeat("{中 } ABC", length);
+            value = Strings.repeat("{''中 } A'", Math.max(1, length / 10));
         } else {
             value = generateString(length);
         }

Reply via email to