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 8274dff900f Refactor BinaryOperationExpressionConverter (#37363)
8274dff900f is described below

commit 8274dff900f89fe7d415491f53ca74720e040348
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Dec 12 16:43:58 2025 +0800

    Refactor BinaryOperationExpressionConverter (#37363)
---
 .../converter/segment/expression/ExpressionConverter.java   |  2 +-
 .../expression/impl/BinaryOperationExpressionConverter.java |  4 ++--
 .../segment/expression/ExpressionConverterTest.java         |  4 ++--
 .../impl/BinaryOperationExpressionConverterTest.java        | 13 ++++---------
 4 files changed, 9 insertions(+), 14 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 8d664f408e4..770fa147628 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
@@ -100,7 +100,7 @@ public final class ExpressionConverter {
             return ListExpressionConverter.convert((ListExpression) segment);
         }
         if (segment instanceof BinaryOperationExpression) {
-            return 
BinaryOperationExpressionConverter.convert((BinaryOperationExpression) segment);
+            return 
Optional.of(BinaryOperationExpressionConverter.convert((BinaryOperationExpression)
 segment));
         }
         if (segment instanceof ColumnSegment) {
             return ColumnConverter.convert((ColumnSegment) segment);
diff --git 
a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
 
b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
index 6169e58f0b1..d553662ffd3 100644
--- 
a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
+++ 
b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
@@ -114,10 +114,10 @@ public final class BinaryOperationExpressionConverter {
      * @param segment binary operation expression
      * @return SQL node
      */
-    public static Optional<SqlNode> convert(final BinaryOperationExpression 
segment) {
+    public static SqlBasicCall convert(final BinaryOperationExpression 
segment) {
         SqlOperator operator = convertOperator(segment);
         List<SqlNode> sqlNodes = convertSqlNodes(segment, operator);
-        return Optional.of(new SqlBasicCall(operator, sqlNodes, 
SqlParserPos.ZERO));
+        return new SqlBasicCall(operator, sqlNodes, SqlParserPos.ZERO);
     }
     
     private static SqlOperator convertOperator(final BinaryOperationExpression 
segment) {
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 6ae46c5b2c4..90e67e3f8b4 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
@@ -116,9 +116,9 @@ class ExpressionConverterTest {
         SqlNode expectedListNode = mock(SqlNode.class);
         ListExpression listSegment = new ListExpression(0, 0);
         
when(ListExpressionConverter.convert(listSegment)).thenReturn(Optional.of(expectedListNode));
-        SqlNode expectedBinaryNode = mock(SqlNode.class);
+        SqlBasicCall expectedBinaryNode = mock(SqlBasicCall.class);
         BinaryOperationExpression binarySegment = new 
BinaryOperationExpression(0, 0, literalSegment, literalSegment, "+", "text");
-        
when(BinaryOperationExpressionConverter.convert(binarySegment)).thenReturn(Optional.of(expectedBinaryNode));
+        
when(BinaryOperationExpressionConverter.convert(binarySegment)).thenReturn(expectedBinaryNode);
         SqlNode expectedColumnNode = mock(SqlNode.class);
         ColumnSegment columnSegment = new ColumnSegment(0, 0, new 
IdentifierValue("col"));
         
when(ColumnConverter.convert(columnSegment)).thenReturn(Optional.of(expectedColumnNode));
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/BinaryOperationExpressionConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/BinaryOperationExpressionConverterTest.java
index fa871036920..0d96e86a358 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/BinaryOperationExpressionConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/BinaryOperationExpressionConverterTest.java
@@ -49,7 +49,6 @@ import java.util.stream.Stream;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -78,8 +77,7 @@ class BinaryOperationExpressionConverterTest {
         SqlNode secondRightNode = mock(SqlNode.class);
         
when(ExpressionConverter.convert(left)).thenReturn(Optional.of(leftNode));
         when(ExpressionConverter.convert(right)).thenReturn(Optional.of(new 
SqlNodeList(Arrays.asList(firstRightNode, secondRightNode), 
SqlParserPos.ZERO)));
-        SqlBasicCall actual = (SqlBasicCall) 
BinaryOperationExpressionConverter.convert(expression).orElse(null);
-        assertNotNull(actual);
+        SqlBasicCall actual = 
BinaryOperationExpressionConverter.convert(expression);
         assertThat(actual.getOperator(), is(SqlStdOperatorTable.PLUS));
         assertThat(actual.getOperandList(), is(Arrays.asList(leftNode, 
firstRightNode, secondRightNode)));
     }
@@ -92,8 +90,7 @@ class BinaryOperationExpressionConverterTest {
         SqlNode rightNode = mock(SqlNode.class);
         
when(ExpressionConverter.convert(left)).thenReturn(Optional.of(leftNode));
         
when(ExpressionConverter.convert(right)).thenReturn(Optional.of(rightNode));
-        SqlBasicCall actual = (SqlBasicCall) 
BinaryOperationExpressionConverter.convert(new BinaryOperationExpression(0, 0, 
left, right, "AND", "")).orElse(null);
-        assertNotNull(actual);
+        SqlBasicCall actual = BinaryOperationExpressionConverter.convert(new 
BinaryOperationExpression(0, 0, left, right, "AND", ""));
         assertThat(actual.getOperator(), is(SqlStdOperatorTable.AND));
         assertThat(actual.getOperandList(), is(Arrays.asList(leftNode, 
rightNode)));
     }
@@ -106,8 +103,7 @@ class BinaryOperationExpressionConverterTest {
         LiteralExpressionSegment right = new LiteralExpressionSegment(0, 0, 
rightLiteral);
         SqlNode leftNode = leftSupplier.get();
         
when(ExpressionConverter.convert(left)).thenReturn(Optional.of(leftNode));
-        SqlBasicCall actual = (SqlBasicCall) 
BinaryOperationExpressionConverter.convert(new BinaryOperationExpression(0, 0, 
left, right, "IS", "")).orElse(null);
-        assertNotNull(actual);
+        SqlBasicCall actual = BinaryOperationExpressionConverter.convert(new 
BinaryOperationExpression(0, 0, left, right, "IS", ""));
         assertThat(actual.getOperator(), is(expectedOperator));
         if (null == expectedBoolean) {
             assertThat(actual.getOperandList(), 
is(Collections.singletonList(leftNode)));
@@ -126,8 +122,7 @@ class BinaryOperationExpressionConverterTest {
         SqlNode rightNode = mock(SqlNode.class);
         
when(ExpressionConverter.convert(left)).thenReturn(Optional.of(leftNode));
         
when(ExpressionConverter.convert(right)).thenReturn(Optional.of(rightNode));
-        SqlBasicCall actual = (SqlBasicCall) 
BinaryOperationExpressionConverter.convert(new BinaryOperationExpression(0, 0, 
left, right, operator, "")).orElse(null);
-        assertNotNull(actual);
+        SqlBasicCall actual = BinaryOperationExpressionConverter.convert(new 
BinaryOperationExpression(0, 0, left, right, operator, ""));
         assertThat(actual.getOperator(), is(expectedOperator));
         assertThat(actual.getOperandList(), is(Arrays.asList(leftNode, 
rightNode)));
     }

Reply via email to