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

sunnianjun 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 f969c62fe94 Add DefaultSessionVariableHandler (#24251)
f969c62fe94 is described below

commit f969c62fe94fc5ec69b11c84ae7a3167ceaf5d87
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Feb 20 10:11:16 2023 +0800

    Add DefaultSessionVariableHandler (#24251)
---
 .../handler/admin/executor/DefaultSessionVariableHandler.java        | 5 +++++
 .../backend/handler/admin/mysql/MySQLSetVariableAdminExecutor.java   | 4 ++--
 .../admin/postgresql/PostgreSQLResetVariableAdminExecutor.java       | 3 +--
 .../handler/admin/postgresql/PostgreSQLSetVariableAdminExecutor.java | 3 +--
 ...ere.proxy.backend.handler.admin.mysql.MySQLSessionVariableHandler | 1 +
 ...backend.handler.admin.postgresql.PostgreSQLSessionVariableHandler | 1 +
 .../admin/postgresql/PostgreSQLResetVariableAdminExecutorTest.java   | 4 +---
 .../admin/postgresql/PostgreSQLSetVariableAdminExecutorTest.java     | 4 +---
 8 files changed, 13 insertions(+), 12 deletions(-)

diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultSessionVariableHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultSessionVariableHandler.java
index ca77969baf5..2f643d93e92 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultSessionVariableHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultSessionVariableHandler.java
@@ -44,4 +44,9 @@ public abstract class DefaultSessionVariableHandler 
implements SessionVariableHa
             log.debug("Set statement {} = {} was discarded.", variableName, 
assignValue);
         }
     }
+    
+    @Override
+    public final boolean isDefault() {
+        return true;
+    }
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/mysql/MySQLSetVariableAdminExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/mysql/MySQLSetVariableAdminExecutor.java
index a076b026cb9..d517558dfb1 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/mysql/MySQLSetVariableAdminExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/mysql/MySQLSetVariableAdminExecutor.java
@@ -52,8 +52,8 @@ public final class MySQLSetVariableAdminExecutor implements 
DatabaseAdminExecuto
     @Override
     public void execute(final ConnectionSession connectionSession) throws 
SQLException {
         Map<String, String> sessionVariables = extractSessionVariables();
-        Map<String, MySQLSessionVariableHandler> handlers = 
sessionVariables.keySet().stream().collect(Collectors.toMap(Function.identity(),
-                value -> 
TypedSPILoader.findService(MySQLSessionVariableHandler.class, 
value).orElseGet(DefaultMySQLSessionVariableHandler::new)));
+        Map<String, MySQLSessionVariableHandler> handlers = 
sessionVariables.keySet().stream()
+                .collect(Collectors.toMap(Function.identity(), value -> 
TypedSPILoader.getService(MySQLSessionVariableHandler.class, value)));
         for (String each : handlers.keySet()) {
             handlers.get(each).handle(connectionSession, each, 
sessionVariables.get(each));
         }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutor.java
index 53ab12dc1a4..f0a73339543 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutor.java
@@ -36,8 +36,7 @@ public final class PostgreSQLResetVariableAdminExecutor 
implements DatabaseAdmin
     @Override
     public void execute(final ConnectionSession connectionSession) {
         String variableName = 
resetParameterStatement.getConfigurationParameter();
-        PostgreSQLSessionVariableHandler variableHandler = 
TypedSPILoader.findService(
-                PostgreSQLSessionVariableHandler.class, 
variableName).orElseGet(DefaultPostgreSQLSessionVariableHandler::new);
+        PostgreSQLSessionVariableHandler variableHandler = 
TypedSPILoader.getService(PostgreSQLSessionVariableHandler.class, variableName);
         variableHandler.handle(connectionSession, variableName, DEFAULT);
     }
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutor.java
index 060f0db70e6..60714ab7f02 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutor.java
@@ -37,8 +37,7 @@ public final class PostgreSQLSetVariableAdminExecutor 
implements DatabaseAdminEx
         VariableAssignSegment variableAssignSegment = 
setStatement.getVariableAssigns().iterator().next();
         String variableName = 
variableAssignSegment.getVariable().getVariable().toLowerCase();
         String assignValue = variableAssignSegment.getAssignValue();
-        PostgreSQLSessionVariableHandler variableHandler = 
TypedSPILoader.findService(
-                PostgreSQLSessionVariableHandler.class, 
variableName).orElseGet(DefaultPostgreSQLSessionVariableHandler::new);
+        PostgreSQLSessionVariableHandler variableHandler = 
TypedSPILoader.getService(PostgreSQLSessionVariableHandler.class, variableName);
         variableHandler.handle(connectionSession, variableName, assignValue);
     }
 }
diff --git 
a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.mysql.MySQLSessionVariableHandler
 
b/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.mysql.MySQLSessionVariableHandler
index 8f40601e2a4..cd7ac38966a 100644
--- 
a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.mysql.MySQLSessionVariableHandler
+++ 
b/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.mysql.MySQLSessionVariableHandler
@@ -15,4 +15,5 @@
 # limitations under the License.
 #
 
+org.apache.shardingsphere.proxy.backend.handler.admin.mysql.DefaultMySQLSessionVariableHandler
 
org.apache.shardingsphere.proxy.backend.handler.admin.mysql.executor.MySQLSetCharsetExecutor
diff --git 
a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.postgresql.PostgreSQLSessionVariableHandler
 
b/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.postgresql.PostgreSQLSessionVariableHandler
index e4b1e1cf9d5..54ffdb56627 100644
--- 
a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.postgresql.PostgreSQLSessionVariableHandler
+++ 
b/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.postgresql.PostgreSQLSessionVariableHandler
@@ -15,4 +15,5 @@
 # limitations under the License.
 #
 
+org.apache.shardingsphere.proxy.backend.handler.admin.postgresql.DefaultPostgreSQLSessionVariableHandler
 
org.apache.shardingsphere.proxy.backend.handler.admin.postgresql.executor.PostgreSQLSetCharsetExecutor
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutorTest.java
index 98add253a3a..7795414060c 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutorTest.java
@@ -22,8 +22,6 @@ import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal
 import org.junit.Test;
 import org.mockito.MockedStatic;
 
-import java.util.Optional;
-
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.verify;
@@ -35,7 +33,7 @@ public final class PostgreSQLResetVariableAdminExecutorTest {
         PostgreSQLResetVariableAdminExecutor executor = new 
PostgreSQLResetVariableAdminExecutor(new 
PostgreSQLResetParameterStatement("key"));
         try (MockedStatic<TypedSPILoader> mockStatic = 
mockStatic(TypedSPILoader.class)) {
             PostgreSQLSessionVariableHandler mockHandler = 
mock(PostgreSQLSessionVariableHandler.class);
-            mockStatic.when(() -> 
TypedSPILoader.findService(PostgreSQLSessionVariableHandler.class, 
"key")).thenReturn(Optional.of(mockHandler));
+            mockStatic.when(() -> 
TypedSPILoader.getService(PostgreSQLSessionVariableHandler.class, 
"key")).thenReturn(mockHandler);
             executor.execute(null);
             verify(mockHandler).handle(null, "key", "DEFAULT");
         }
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutorTest.java
index 506e92e6c21..ad2479141cb 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutorTest.java
@@ -24,8 +24,6 @@ import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal
 import org.junit.Test;
 import org.mockito.MockedStatic;
 
-import java.util.Optional;
-
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.verify;
@@ -44,7 +42,7 @@ public final class PostgreSQLSetVariableAdminExecutorTest {
         PostgreSQLSetVariableAdminExecutor executor = new 
PostgreSQLSetVariableAdminExecutor(setStatement);
         try (MockedStatic<TypedSPILoader> mockStatic = 
mockStatic(TypedSPILoader.class)) {
             PostgreSQLSessionVariableHandler mockHandler = 
mock(PostgreSQLSessionVariableHandler.class);
-            mockStatic.when(() -> 
TypedSPILoader.findService(PostgreSQLSessionVariableHandler.class, 
"key")).thenReturn(Optional.of(mockHandler));
+            mockStatic.when(() -> 
TypedSPILoader.getService(PostgreSQLSessionVariableHandler.class, 
"key")).thenReturn(mockHandler);
             executor.execute(null);
             verify(mockHandler).handle(null, "key", "value");
         }

Reply via email to