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

duanzhengqiang 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 2c7ff0bdd0e Support Left and Right Joins Using the Plus (+) Sign in 
Oracle. (#28417)
2c7ff0bdd0e is described below

commit 2c7ff0bdd0e86435837f2b442937b0ed0f89057e
Author: Cong Hu <[email protected]>
AuthorDate: Tue Sep 12 17:05:50 2023 +0800

    Support Left and Right Joins Using the Plus (+) Sign in Oracle. (#28417)
---
 .../segment/dml/expr/simple/ColumnWithJoinOperatorSegment.java     | 3 ++-
 .../shardingsphere/sql/parser/sql/common/util/ColumnExtractor.java | 7 +++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git 
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/expr/simple/ColumnWithJoinOperatorSegment.java
 
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/expr/simple/ColumnWithJoinOperatorSegment.java
index 2959c6ded31..66e8be1f1b1 100644
--- 
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/expr/simple/ColumnWithJoinOperatorSegment.java
+++ 
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/expr/simple/ColumnWithJoinOperatorSegment.java
@@ -20,13 +20,14 @@ package 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
+import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
 
 /**
  * Column with join operator segment.
  */
 @RequiredArgsConstructor
 @Getter
-public class ColumnWithJoinOperatorSegment implements SimpleExpressionSegment {
+public class ColumnWithJoinOperatorSegment implements ExpressionSegment {
     
     private final int startIndex;
     
diff --git 
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/util/ColumnExtractor.java
 
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/util/ColumnExtractor.java
index f0ddac8045c..b4be86f36c6 100644
--- 
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/util/ColumnExtractor.java
+++ 
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/util/ColumnExtractor.java
@@ -24,6 +24,7 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BetweenE
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BinaryOperationExpression;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.InExpression;
+import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.ColumnWithJoinOperatorSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.predicate.AndPredicate;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.predicate.WhereSegment;
 
@@ -51,6 +52,12 @@ public final class ColumnExtractor {
             if (((BinaryOperationExpression) expression).getRight() instanceof 
ColumnSegment) {
                 result.add((ColumnSegment) ((BinaryOperationExpression) 
expression).getRight());
             }
+            if (((BinaryOperationExpression) expression).getLeft() instanceof 
ColumnWithJoinOperatorSegment) {
+                result.add(((ColumnWithJoinOperatorSegment) 
((BinaryOperationExpression) expression).getLeft()).getColumnName());
+            }
+            if (((BinaryOperationExpression) expression).getRight() instanceof 
ColumnWithJoinOperatorSegment) {
+                result.add(((ColumnWithJoinOperatorSegment) 
((BinaryOperationExpression) expression).getRight()).getColumnName());
+            }
         }
         if (expression instanceof InExpression && ((InExpression) 
expression).getLeft() instanceof ColumnSegment) {
             result.add((ColumnSegment) ((InExpression) expression).getLeft());

Reply via email to