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

terrymanu 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 5e3c7592f34 Simplify backend firebird (#40316)
5e3c7592f34 is described below

commit 5e3c7592f34b1246cbb1760e67768adcaedd8a09
Author: Maxim Igoshin <[email protected]>
AuthorDate: Thu Oct 22 18:04:14 2026 +0300

    Simplify backend firebird (#40316)
    
    * Remove unused variable row generator from Firebird show variable executor
    
    * Remove commented-out Firebird character sets
    
    * Simplify mocks in Firebird proxy backend tests
    
    * Add release note for Firebird proxy backend simplification
    
    * Add PR link to Firebird proxy backend simplification release note
---
 .../executor/FirebirdShowVariableExecutor.java     | 24 ++--------------------
 .../variable/charset/FirebirdCharacterSets.java    |  2 --
 ...StatementMemoryStrictlyFetchSizeSetterTest.java | 14 ++-----------
 .../admin/FirebirdAdminExecutorCreatorTest.java    |  1 -
 .../FirebirdSetVariableAdminExecutorTest.java      | 16 +++++----------
 5 files changed, 9 insertions(+), 48 deletions(-)

diff --git 
a/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdShowVariableExecutor.java
 
b/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdShowVariableExecutor.java
index 68472a8b03d..8e7969c841f 100644
--- 
a/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdShowVariableExecutor.java
+++ 
b/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdShowVariableExecutor.java
@@ -33,9 +33,7 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dal.Sh
 
 import java.sql.Types;
 import java.util.Collections;
-import java.util.LinkedHashMap;
 import java.util.Locale;
-import java.util.Map;
 import java.util.Optional;
 
 /**
@@ -44,13 +42,6 @@ import java.util.Optional;
 @RequiredArgsConstructor
 public final class FirebirdShowVariableExecutor implements 
DatabaseAdminQueryExecutor {
     
-    private static final Map<String, VariableRowDataGenerator> 
VARIABLE_ROW_DATA_GENERATORS = new LinkedHashMap<>(7, 1);
-    
-    static {
-        VARIABLE_ROW_DATA_GENERATORS.put("server_version", connectionSession 
-> new String[]{"server_version", ShardingSphereVersion.VERSION, "Shows the 
server version."});
-        // TODO add SHOW statements support
-    }
-    
     private final ShowStatement showStatement;
     
     @Getter
@@ -63,18 +54,7 @@ public final class FirebirdShowVariableExecutor implements 
DatabaseAdminQueryExe
     public void execute(final ConnectionSession connectionSession, final 
ShardingSphereMetaData metaData) {
         String name = 
Optional.ofNullable(showStatement.getName()).orElse("").toLowerCase(Locale.ROOT);
         queryResultMetaData = new 
RawQueryResultMetaData(Collections.singletonList(new 
RawQueryResultColumnMetaData("", "", name, Types.VARCHAR, "VARCHAR", -1, 0)));
-        VariableRowDataGenerator variableRowDataGenerator = 
VARIABLE_ROW_DATA_GENERATORS.getOrDefault(name, unused -> new String[]{"", "", 
""});
-        mergedResult = new LocalDataMergedResult(Collections.singletonList(new 
LocalDataQueryResultRow(variableRowDataGenerator.getVariable(connectionSession)[1])));
-    }
-    
-    private interface VariableRowDataGenerator {
-        
-        /**
-         * Get variable.
-         *
-         * @param connectionSession connection session
-         * @return variable
-         */
-        Object[] getVariable(ConnectionSession connectionSession);
+        // TODO add SHOW statements support
+        mergedResult = new LocalDataMergedResult(Collections.singletonList(new 
LocalDataQueryResultRow("server_version".equals(name) ? 
ShardingSphereVersion.VERSION : "")));
     }
 }
diff --git 
a/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/variable/charset/FirebirdCharacterSets.java
 
b/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/variable/charset/FirebirdCharacterSets.java
index 72dd999ffdd..c1a52dad86b 100644
--- 
a/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/variable/charset/FirebirdCharacterSets.java
+++ 
b/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/variable/charset/FirebirdCharacterSets.java
@@ -33,7 +33,6 @@ public enum FirebirdCharacterSets {
     
     ASCII(() -> StandardCharsets.US_ASCII),
     BIG_5(() -> Charset.forName("BIG5")),
-    // CYRL(() -> Charset.forName("CYRL")),
     DOS437(() -> Charset.forName("IBM437")),
     DOS737(() -> Charset.forName("IBM737")),
     DOS775(() -> Charset.forName("IBM775")),
@@ -64,7 +63,6 @@ public enum FirebirdCharacterSets {
     KOI8R(() -> Charset.forName("KOI8-R")),
     KOI8U(() -> Charset.forName("KOI8-U")),
     KSC_5601(() -> Charset.forName("EUC-KR")),
-    // NEXT(() -> Charset.forName("NEXT")),
     
     // default jvm value as described here: 
https://www.firebirdsql.org/file/documentation/drivers_documentation/java/faq.html#how-can-i-specify-the-connection-character-set
     NONE(Charset::defaultCharset),
diff --git 
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/connector/jdbc/statement/FirebirdStatementMemoryStrictlyFetchSizeSetterTest.java
 
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/connector/jdbc/statement/FirebirdStatementMemoryStrictlyFetchSizeSetterTest.java
index 3a33da528b7..cb0a50fe61a 100644
--- 
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/connector/jdbc/statement/FirebirdStatementMemoryStrictlyFetchSizeSetterTest.java
+++ 
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/connector/jdbc/statement/FirebirdStatementMemoryStrictlyFetchSizeSetterTest.java
@@ -21,7 +21,6 @@ import 
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoa
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.proxy.backend.connector.jdbc.statement.StatementMemoryStrictlyFetchSizeSetter;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import 
org.apache.shardingsphere.test.infra.framework.extension.mock.AutoMockExtension;
@@ -32,7 +31,6 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import java.sql.SQLException;
 import java.sql.Statement;
 
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -48,8 +46,7 @@ class FirebirdStatementMemoryStrictlyFetchSizeSetterTest {
     @Test
     void assertSetFetchSizeWithDefaultValue() throws SQLException {
         Statement statement = mock(Statement.class);
-        ContextManager contextManager = mockContextManager(-1);
-        
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.PROXY_BACKEND_QUERY_FETCH_SIZE)).thenReturn(-1);
         fetchSizeSetter.setFetchSize(statement);
         verify(statement).setFetchSize(1);
     }
@@ -57,15 +54,8 @@ class FirebirdStatementMemoryStrictlyFetchSizeSetterTest {
     @Test
     void assertSetFetchSizeWithCustomValue() throws SQLException {
         Statement statement = mock(Statement.class);
-        ContextManager contextManager = mockContextManager(20);
-        
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.PROXY_BACKEND_QUERY_FETCH_SIZE)).thenReturn(20);
         fetchSizeSetter.setFetchSize(statement);
         verify(statement).setFetchSize(20);
     }
-    
-    private ContextManager mockContextManager(final int configuredFetchSize) {
-        ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
-        
when(result.getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.PROXY_BACKEND_QUERY_FETCH_SIZE)).thenReturn(configuredFetchSize);
-        return result;
-    }
 }
diff --git 
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
 
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
index 50971126933..8447d6c9f9b 100644
--- 
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
+++ 
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
@@ -80,5 +80,4 @@ class FirebirdAdminExecutorCreatorTest {
         
when(result.getSqlStatement()).thenReturn(SelectStatement.builder().databaseType(DATABASE_TYPE).build());
         return result;
     }
-    
 }
diff --git 
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdSetVariableAdminExecutorTest.java
 
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdSetVariableAdminExecutorTest.java
index 52768c33388..9874b00f8fd 100644
--- 
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdSetVariableAdminExecutorTest.java
+++ 
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdSetVariableAdminExecutorTest.java
@@ -20,10 +20,8 @@ package 
org.apache.shardingsphere.proxy.backend.firebird.handler.admin.executor;
 import 
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import 
org.apache.shardingsphere.proxy.backend.connector.ProxyDatabaseConnectionManager;
 import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.variable.session.ReplayedSessionVariableProvider;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import 
org.apache.shardingsphere.proxy.backend.session.RequiredSessionVariableRecorder;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dal.VariableAssignSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dal.VariableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dal.SetStatement;
@@ -33,6 +31,7 @@ import org.mockito.MockedStatic;
 import java.util.Collections;
 import java.util.Optional;
 
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.verify;
@@ -45,19 +44,14 @@ class FirebirdSetVariableAdminExecutorTest {
     @Test
     void assertExecute() {
         SetStatement setStatement = new SetStatement(databaseType, 
Collections.singletonList(new VariableAssignSegment(0, 0, new 
VariableSegment(0, 0, "key"), "value")));
-        FirebirdSetVariableAdminExecutor executor = new 
FirebirdSetVariableAdminExecutor(setStatement);
-        ConnectionSession connectionSession = mock(ConnectionSession.class);
-        RequiredSessionVariableRecorder requiredSessionVariableRecorder = 
mock(RequiredSessionVariableRecorder.class);
-        ProxyDatabaseConnectionManager databaseConnectionManager = 
mock(ProxyDatabaseConnectionManager.class);
-        
when(connectionSession.getRequiredSessionVariableRecorder()).thenReturn(requiredSessionVariableRecorder);
-        
when(connectionSession.getDatabaseConnectionManager()).thenReturn(databaseConnectionManager);
+        ConnectionSession connectionSession = mock(ConnectionSession.class, 
RETURNS_DEEP_STUBS);
         try (MockedStatic<DatabaseTypedSPILoader> databaseTypedSPILoader = 
mockStatic(DatabaseTypedSPILoader.class)) {
             ReplayedSessionVariableProvider replayedSessionVariableProvider = 
mock(ReplayedSessionVariableProvider.class);
             
when(replayedSessionVariableProvider.isNeedToReplay("key")).thenReturn(true);
             databaseTypedSPILoader.when(() -> 
DatabaseTypedSPILoader.findService(ReplayedSessionVariableProvider.class, 
databaseType)).thenReturn(Optional.of(replayedSessionVariableProvider));
-            executor.execute(connectionSession, mock());
-            verify(requiredSessionVariableRecorder).setVariable("key", 
"value");
-            verify(databaseConnectionManager).markSessionVariablesDirty();
+            new 
FirebirdSetVariableAdminExecutor(setStatement).execute(connectionSession, 
mock());
+            
verify(connectionSession.getRequiredSessionVariableRecorder()).setVariable("key",
 "value");
+            
verify(connectionSession.getDatabaseConnectionManager()).markSessionVariablesDirty();
         }
     }
 }

Reply via email to