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

yx9o 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 cdfe664c676 Refactor MySQLJdbcQueryPropertiesExtension (#32488)
cdfe664c676 is described below

commit cdfe664c676f3259c447bcc39e4d07e1179b2884
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Aug 13 13:39:51 2024 +0800

    Refactor MySQLJdbcQueryPropertiesExtension (#32488)
---
 .../MySQLJdbcQueryPropertiesExtension.java         | 31 +++++++++++-----------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/datasource/MySQLJdbcQueryPropertiesExtension.java
 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/datasource/MySQLJdbcQueryPropertiesExtension.java
index 0ef86701771..93b83edc34a 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/datasource/MySQLJdbcQueryPropertiesExtension.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/datasource/MySQLJdbcQueryPropertiesExtension.java
@@ -21,8 +21,6 @@ import lombok.extern.slf4j.Slf4j;
 import 
org.apache.shardingsphere.data.pipeline.mysql.ingest.client.ServerVersion;
 import 
org.apache.shardingsphere.data.pipeline.spi.JdbcQueryPropertiesExtension;
 
-import java.util.Collection;
-import java.util.Collections;
 import java.util.Properties;
 
 /**
@@ -33,19 +31,19 @@ public final class MySQLJdbcQueryPropertiesExtension 
implements JdbcQueryPropert
     
     private static final String MYSQL_CONNECTOR_VERSION = 
initMySQLConnectorVersion();
     
-    private static final Collection<String> NOT_OVERRIDE_PROPERTIES = 
Collections.singleton("netTimeoutForStreamingResults");
+    private final Properties toBeOverrideQueryProps = new Properties();
     
-    private final Properties queryProps = new Properties();
+    private final Properties completeIfMissedQueryProps = new Properties();
     
     public MySQLJdbcQueryPropertiesExtension() {
-        queryProps.setProperty("useSSL", Boolean.FALSE.toString());
-        queryProps.setProperty("useServerPrepStmts", Boolean.FALSE.toString());
-        queryProps.setProperty("rewriteBatchedStatements", 
Boolean.TRUE.toString());
-        queryProps.setProperty("yearIsDateType", Boolean.FALSE.toString());
-        queryProps.setProperty("zeroDateTimeBehavior", 
getZeroDateTimeBehavior());
-        queryProps.setProperty("noDatetimeStringSync", 
Boolean.TRUE.toString());
-        queryProps.setProperty("jdbcCompliantTruncation", 
Boolean.FALSE.toString());
-        queryProps.setProperty("netTimeoutForStreamingResults", "600");
+        toBeOverrideQueryProps.setProperty("useSSL", Boolean.FALSE.toString());
+        toBeOverrideQueryProps.setProperty("useServerPrepStmts", 
Boolean.FALSE.toString());
+        toBeOverrideQueryProps.setProperty("rewriteBatchedStatements", 
Boolean.TRUE.toString());
+        toBeOverrideQueryProps.setProperty("yearIsDateType", 
Boolean.FALSE.toString());
+        toBeOverrideQueryProps.setProperty("zeroDateTimeBehavior", 
getZeroDateTimeBehavior());
+        toBeOverrideQueryProps.setProperty("noDatetimeStringSync", 
Boolean.TRUE.toString());
+        toBeOverrideQueryProps.setProperty("jdbcCompliantTruncation", 
Boolean.FALSE.toString());
+        
completeIfMissedQueryProps.setProperty("netTimeoutForStreamingResults", "600");
     }
     
     private String getZeroDateTimeBehavior() {
@@ -65,9 +63,12 @@ public final class MySQLJdbcQueryPropertiesExtension 
implements JdbcQueryPropert
     
     @Override
     public void extendQueryProperties(final Properties props) {
-        for (String each : queryProps.stringPropertyNames()) {
-            if (!NOT_OVERRIDE_PROPERTIES.contains(each) || 
!props.containsKey(each)) {
-                props.setProperty(each, queryProps.getProperty(each));
+        for (String each : toBeOverrideQueryProps.stringPropertyNames()) {
+            props.setProperty(each, toBeOverrideQueryProps.getProperty(each));
+        }
+        for (String each : completeIfMissedQueryProps.stringPropertyNames()) {
+            if (!props.containsKey(each)) {
+                props.setProperty(each, 
completeIfMissedQueryProps.getProperty(each));
             }
         }
     }

Reply via email to