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 ea9aceaa6e7 Refactor ExtractArgExpressionConverter (#37367)
ea9aceaa6e7 is described below

commit ea9aceaa6e7a3305a0a555e6250191513f8b416e
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Dec 12 17:58:21 2025 +0800

    Refactor ExtractArgExpressionConverter (#37367)
    
    * Refactor ExistsSubqueryExpressionConverter
    
    * Refactor ExtractArgExpressionConverter
---
 .../converter/segment/expression/ExpressionConverter.java    |  2 +-
 .../expression/impl/ExtractArgExpressionConverter.java       | 10 ++--------
 .../segment/expression/ExpressionConverterTest.java          |  4 ++--
 .../expression/impl/ExtractArgExpressionConverterTest.java   | 12 +-----------
 4 files changed, 6 insertions(+), 22 deletions(-)

diff --git 
a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverter.java
 
b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverter.java
index eade8eb6f25..ac7d9516dda 100644
--- 
a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverter.java
+++ 
b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverter.java
@@ -139,7 +139,7 @@ public final class ExpressionConverter {
             return TypeCastExpressionConverter.convert((TypeCastExpression) 
segment);
         }
         if (segment instanceof ExtractArgExpression) {
-            return 
ExtractArgExpressionConverter.convert((ExtractArgExpression) segment);
+            return 
Optional.of(ExtractArgExpressionConverter.convert((ExtractArgExpression) 
segment));
         }
         if (segment instanceof MatchAgainstExpression) {
             return MatchExpressionConverter.convert((MatchAgainstExpression) 
segment);
diff --git 
a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverter.java
 
b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverter.java
index 239fe4a5b14..3d2b00812c7 100644
--- 
a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverter.java
+++ 
b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverter.java
@@ -20,12 +20,9 @@ package 
org.apache.shardingsphere.sqlfederation.compiler.sql.ast.converter.segme
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.calcite.sql.SqlIdentifier;
-import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.parser.SqlParserPos;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExtractArgExpression;
 
-import java.util.Optional;
-
 /**
  * Extract arg expression converter.
  */
@@ -38,10 +35,7 @@ public final class ExtractArgExpressionConverter {
      * @param expression extract arg expression
      * @return SQL node
      */
-    public static Optional<SqlNode> convert(final ExtractArgExpression 
expression) {
-        if (null == expression) {
-            return Optional.empty();
-        }
-        return Optional.of(new SqlIdentifier(expression.getText(), 
SqlParserPos.ZERO));
+    public static SqlIdentifier convert(final ExtractArgExpression expression) 
{
+        return new SqlIdentifier(expression.getText(), SqlParserPos.ZERO);
     }
 }
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverterTest.java
index da65d93e8e2..a5f12a7a9eb 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverterTest.java
@@ -160,9 +160,9 @@ class ExpressionConverterTest {
         SqlNode expectedTypeCastNode = mock(SqlNode.class);
         TypeCastExpression typeCastExpression = new TypeCastExpression(0, 0, 
"text", literalSegment, "int");
         
when(TypeCastExpressionConverter.convert(typeCastExpression)).thenReturn(Optional.of(expectedTypeCastNode));
-        SqlNode expectedExtractNode = mock(SqlNode.class);
+        SqlIdentifier expectedExtractNode = mock(SqlIdentifier.class);
         ExtractArgExpression extractArgExpression = new 
ExtractArgExpression(0, 0, "extract");
-        
when(ExtractArgExpressionConverter.convert(extractArgExpression)).thenReturn(Optional.of(expectedExtractNode));
+        
when(ExtractArgExpressionConverter.convert(extractArgExpression)).thenReturn(expectedExtractNode);
         SqlNode expectedMatchNode = mock(SqlNode.class);
         MatchAgainstExpression matchAgainstExpression = new 
MatchAgainstExpression(0, 0, literalSegment, "search", "text");
         
when(MatchExpressionConverter.convert(matchAgainstExpression)).thenReturn(Optional.of(expectedMatchNode));
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverterTest.java
index b74434e3f34..353728986e0 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverterTest.java
@@ -17,26 +17,16 @@
 
 package 
org.apache.shardingsphere.sqlfederation.compiler.sql.ast.converter.segment.expression.impl;
 
-import org.apache.calcite.sql.SqlIdentifier;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExtractArgExpression;
 import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 class ExtractArgExpressionConverterTest {
     
-    @Test
-    void assertConvertReturnsEmptyForNullExpression() {
-        assertFalse(ExtractArgExpressionConverter.convert(null).isPresent());
-    }
-    
     @Test
     void assertConvertExtractArgExpression() {
-        SqlIdentifier actual = (SqlIdentifier) 
ExtractArgExpressionConverter.convert(new ExtractArgExpression(0, 0, 
"DAY")).orElse(null);
-        assertNotNull(actual);
-        assertThat(actual.getSimple(), is("DAY"));
+        assertThat(ExtractArgExpressionConverter.convert(new 
ExtractArgExpression(0, 0, "DAY")).getSimple(), is("DAY"));
     }
 }

Reply via email to