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)));
}