This is an automated email from the ASF dual-hosted git repository.
panjuan 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 2375760eb03 Revise pr 25564 code style (#25575)
2375760eb03 is described below
commit 2375760eb031fdbf4517c31b32a14662efa57335
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Thu May 11 17:53:11 2023 +0800
Revise pr 25564 code style (#25575)
---
.../impl/BinaryOperationExpressionConverter.java | 34 ++++++++++++++--------
1 file changed, 22 insertions(+), 12 deletions(-)
diff --git
a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
index a9179c11e09..4d2f7fe1e2c 100644
---
a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
+++
b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
@@ -82,23 +82,33 @@ public final class BinaryOperationExpressionConverter
implements SQLSegmentConve
@Override
public Optional<SqlNode> convert(final BinaryOperationExpression segment) {
- SqlNode left = new
ExpressionConverter().convert(segment.getLeft()).orElseThrow(IllegalStateException::new);
- SqlNode right = new
ExpressionConverter().convert(segment.getRight()).orElseThrow(IllegalStateException::new);
+ SqlOperator operator = convertOperator(segment);
+ List<SqlNode> sqlNodes = convertSqlNodes(segment, operator);
+ return Optional.of(new SqlBasicCall(operator, sqlNodes,
SqlParserPos.ZERO));
+ }
+
+ private SqlOperator convertOperator(final BinaryOperationExpression
segment) {
String operator = segment.getOperator();
- List<SqlNode> sqlNodes = new LinkedList<>();
- sqlNodes.add(left);
- if ("IS".equals(operator)) {
- right = null;
- if (((LiteralExpressionSegment)
segment.getRight()).getLiterals().equals("NULL")) {
+ if ("IS".equalsIgnoreCase(operator)) {
+ String literals = String.valueOf(((LiteralExpressionSegment)
segment.getRight()).getLiterals());
+ if ("NULL".equalsIgnoreCase(literals)) {
operator = "IS NULL";
- } else if (((LiteralExpressionSegment)
segment.getRight()).getLiterals().equals("NOT NULL")) {
+ } else if ("NOT NULL".equalsIgnoreCase(literals)) {
operator = "IS NOT NULL";
}
- } else {
- sqlNodes.addAll(right instanceof SqlNodeList ? ((SqlNodeList)
right).getList() : Collections.singletonList(right));
}
Preconditions.checkState(REGISTRY.containsKey(operator), "Unsupported
SQL operator: `%s`", operator);
- SqlOperator sqlOperator = REGISTRY.get(operator);
- return Optional.of(new SqlBasicCall(sqlOperator, sqlNodes.toArray(new
SqlNode[0]), SqlParserPos.ZERO));
+ return REGISTRY.get(operator);
+ }
+
+ private List<SqlNode> convertSqlNodes(final BinaryOperationExpression
segment, final SqlOperator operator) {
+ SqlNode left = new
ExpressionConverter().convert(segment.getLeft()).orElseThrow(IllegalStateException::new);
+ List<SqlNode> result = new LinkedList<>();
+ result.add(left);
+ if (!SqlStdOperatorTable.IS_NULL.equals(operator) &&
!SqlStdOperatorTable.IS_NOT_NULL.equals(operator)) {
+ SqlNode right = new
ExpressionConverter().convert(segment.getRight()).orElseThrow(IllegalStateException::new);
+ result.addAll(right instanceof SqlNodeList ? ((SqlNodeList)
right).getList() : Collections.singletonList(right));
+ }
+ return result;
}
}