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

zhangliang 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 0cc6ef49462 Replace MySQL-specific statements with core statements in 
EncryptDALResultDecorator (#35393)
0cc6ef49462 is described below

commit 0cc6ef494628501221a6c04df4d8355827a1afb3
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Wed May 14 03:28:25 2025 +0800

    Replace MySQL-specific statements with core statements in 
EncryptDALResultDecorator (#35393)
    
    - Replace MySQLExplainStatement with ExplainStatement
    - Replace MySQLShowColumnsStatement with ShowColumnsStatement
    - Replace MySQLShowCreateTableStatement with ShowCreateTableStatement
    - Update related test cases
---
 .../merge/dal/EncryptDALResultDecorator.java       | 10 ++---
 .../merge/dal/EncryptDALResultDecoratorTest.java   | 46 ++++++++++------------
 2 files changed, 25 insertions(+), 31 deletions(-)

diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
index 07ef72e9ea4..955801edd3d 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
@@ -26,9 +26,9 @@ import 
org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecorator;
 import org.apache.shardingsphere.infra.merge.result.MergedResult;
 import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLExplainStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowColumnsStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowCreateTableStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ExplainStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowColumnsStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowCreateTableStatement;
 
 /**
  * DAL result decorator for encrypt.
@@ -41,10 +41,10 @@ public final class EncryptDALResultDecorator implements 
ResultDecorator<EncryptR
     @Override
     public MergedResult decorate(final MergedResult mergedResult, final 
SQLStatementContext sqlStatementContext, final EncryptRule rule) {
         SQLStatement sqlStatement = sqlStatementContext.getSqlStatement();
-        if (sqlStatement instanceof MySQLExplainStatement || sqlStatement 
instanceof MySQLShowColumnsStatement) {
+        if (sqlStatement instanceof ExplainStatement || sqlStatement 
instanceof ShowColumnsStatement) {
             return new EncryptShowColumnsMergedResult(mergedResult, 
sqlStatementContext, rule);
         }
-        if (sqlStatement instanceof MySQLShowCreateTableStatement) {
+        if (sqlStatement instanceof ShowCreateTableStatement) {
             return new EncryptShowCreateTableMergedResult(globalRuleMetaData, 
mergedResult, sqlStatementContext, rule);
         }
         return mergedResult;
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java
index 5b51a0b6ccf..df4426573f5 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java
@@ -31,10 +31,10 @@ import 
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.parser.rule.SQLParserRule;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ExplainStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowColumnsStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowCreateTableStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import 
org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLExplainStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowColumnsStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowCreateTableStatement;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
@@ -60,17 +60,17 @@ class EncryptDALResultDecoratorTest {
     private SQLStatementContext sqlStatementContext;
     
     @Test
-    void assertMergedResultWithDescribeStatement() {
-        sqlStatementContext = getDescribeStatementContext();
-        EncryptDALResultDecorator encryptDALResultDecorator = new 
EncryptDALResultDecorator(mock(RuleMetaData.class));
-        
assertThat(encryptDALResultDecorator.decorate(mock(MergedResult.class), 
sqlStatementContext, rule), instanceOf(EncryptShowColumnsMergedResult.class));
+    void assertMergedResultWithExplainStatement() {
+        sqlStatementContext = getExplainStatementContext();
+        EncryptDALResultDecorator decorator = new 
EncryptDALResultDecorator(mock(RuleMetaData.class));
+        assertThat(decorator.decorate(mock(MergedResult.class), 
sqlStatementContext, rule), instanceOf(EncryptShowColumnsMergedResult.class));
     }
     
     @Test
     void assertMergedResultWithShowColumnsStatement() {
         sqlStatementContext = getShowColumnsStatementContext();
-        EncryptDALResultDecorator encryptDALResultDecorator = new 
EncryptDALResultDecorator(mock(RuleMetaData.class));
-        
assertThat(encryptDALResultDecorator.decorate(mock(MergedResult.class), 
sqlStatementContext, rule), instanceOf(EncryptShowColumnsMergedResult.class));
+        EncryptDALResultDecorator decorator = new 
EncryptDALResultDecorator(mock(RuleMetaData.class));
+        assertThat(decorator.decorate(mock(MergedResult.class), 
sqlStatementContext, rule), instanceOf(EncryptShowColumnsMergedResult.class));
     }
     
     @Test
@@ -78,45 +78,39 @@ class EncryptDALResultDecoratorTest {
         sqlStatementContext = getShowCreateTableStatementContext();
         RuleMetaData ruleMetaData = mock(RuleMetaData.class);
         
when(ruleMetaData.getSingleRule(SQLParserRule.class)).thenReturn(mock(SQLParserRule.class));
-        EncryptDALResultDecorator encryptDALResultDecorator = new 
EncryptDALResultDecorator(ruleMetaData);
-        
assertThat(encryptDALResultDecorator.decorate(mock(MergedResult.class), 
sqlStatementContext, rule), 
instanceOf(EncryptShowCreateTableMergedResult.class));
+        EncryptDALResultDecorator decorator = new 
EncryptDALResultDecorator(ruleMetaData);
+        assertThat(decorator.decorate(mock(MergedResult.class), 
sqlStatementContext, rule), 
instanceOf(EncryptShowCreateTableMergedResult.class));
     }
     
     @Test
     void assertMergedResultWithOtherStatement() {
         sqlStatementContext = mock(SQLStatementContext.class);
-        EncryptDALResultDecorator encryptDALResultDecorator = new 
EncryptDALResultDecorator(mock(RuleMetaData.class));
-        
assertThat(encryptDALResultDecorator.decorate(mock(MergedResult.class), 
sqlStatementContext, rule), instanceOf(MergedResult.class));
+        EncryptDALResultDecorator decorator = new 
EncryptDALResultDecorator(mock(RuleMetaData.class));
+        assertThat(decorator.decorate(mock(MergedResult.class), 
sqlStatementContext, rule), instanceOf(MergedResult.class));
     }
     
-    private SQLStatementContext getDescribeStatementContext() {
+    private SQLStatementContext getExplainStatementContext() {
         ExplainStatementContext result = mock(ExplainStatementContext.class, 
RETURNS_DEEP_STUBS);
-        SimpleTableSegment simpleTableSegment = getSimpleTableSegment();
+        SimpleTableSegment simpleTableSegment = new SimpleTableSegment(new 
TableNameSegment(1, 7, new IdentifierValue("foo_tbl")));
         
when(result.getTablesContext().getSimpleTables()).thenReturn(Collections.singleton(simpleTableSegment));
-        
when(result.getSqlStatement()).thenReturn(mock(MySQLExplainStatement.class));
+        
when(result.getSqlStatement()).thenReturn(mock(ExplainStatement.class));
         return result;
     }
     
     private SQLStatementContext getShowColumnsStatementContext() {
         ShowColumnsStatementContext result = 
mock(ShowColumnsStatementContext.class, RETURNS_DEEP_STUBS);
-        SimpleTableSegment simpleTableSegment = getSimpleTableSegment();
+        SimpleTableSegment simpleTableSegment = new SimpleTableSegment(new 
TableNameSegment(1, 7, new IdentifierValue("foo_tbl")));
         
when(result.getTablesContext().getSimpleTables()).thenReturn(Collections.singleton(simpleTableSegment));
-        
when(result.getSqlStatement()).thenReturn(mock(MySQLShowColumnsStatement.class));
+        
when(result.getSqlStatement()).thenReturn(mock(ShowColumnsStatement.class));
         return result;
     }
     
     private SQLStatementContext getShowCreateTableStatementContext() {
         ShowCreateTableStatementContext result = 
mock(ShowCreateTableStatementContext.class, RETURNS_DEEP_STUBS);
         when(result.getDatabaseType()).thenReturn(databaseType);
-        SimpleTableSegment simpleTableSegment = getSimpleTableSegment();
+        SimpleTableSegment simpleTableSegment = new SimpleTableSegment(new 
TableNameSegment(1, 7, new IdentifierValue("foo_tbl")));
         
when(result.getTablesContext().getSimpleTables()).thenReturn(Collections.singleton(simpleTableSegment));
-        when(result.getSqlStatement()).thenReturn(new 
MySQLShowCreateTableStatement());
+        
when(result.getSqlStatement()).thenReturn(mock(ShowCreateTableStatement.class));
         return result;
     }
-    
-    private SimpleTableSegment getSimpleTableSegment() {
-        IdentifierValue identifierValue = new IdentifierValue("test");
-        TableNameSegment tableNameSegment = new TableNameSegment(1, 4, 
identifierValue);
-        return new SimpleTableSegment(tableNameSegment);
-    }
 }

Reply via email to