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

sunnianjun 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 83fe25fdb50 Correct OuterJoinExpression getText logic and add text 
assertion in sql parse test case (#31215)
83fe25fdb50 is described below

commit 83fe25fdb509039d2fbdf87c9f7e27032ab5cb8a
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Sun May 12 15:09:45 2024 +0800

    Correct OuterJoinExpression getText logic and add text assertion in sql 
parse test case (#31215)
---
 .../parser/oracle/visitor/statement/OracleStatementVisitor.java   | 2 +-
 .../sql/dialect/segment/oracle/join/OuterJoinExpression.java      | 4 +++-
 .../asserts/segment/column/OuterJoinExpressionAssert.java         | 5 ++++-
 .../jaxb/segment/impl/expr/ExpectedOuterJoinExpression.java       | 3 +++
 test/it/parser/src/main/resources/case/ddl/create-view.xml        | 8 ++++----
 test/it/parser/src/main/resources/case/dml/select-join.xml        | 2 +-
 6 files changed, 16 insertions(+), 8 deletions(-)

diff --git 
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java
 
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java
index 0b171b968ef..e21c72f7937 100644
--- 
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java
+++ 
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java
@@ -625,7 +625,7 @@ public abstract class OracleStatementVisitor extends 
OracleStatementBaseVisitor<
         }
         if (null != ctx.columnName()) {
             return null == ctx.joinOperator() ? visit(ctx.columnName())
-                    : new OuterJoinExpression(startIndex, stopIndex, 
(ColumnSegment) visitColumnName(ctx.columnName()), 
ctx.joinOperator().getText());
+                    : new OuterJoinExpression(startIndex, stopIndex, 
(ColumnSegment) visitColumnName(ctx.columnName()), 
ctx.joinOperator().getText(), getOriginalText(ctx));
         }
         if (null != ctx.privateExprOfDb()) {
             return visit(ctx.privateExprOfDb());
diff --git 
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/segment/oracle/join/OuterJoinExpression.java
 
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/segment/oracle/join/OuterJoinExpression.java
index fb28bcb9eec..8c8f6cfd51d 100644
--- 
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/segment/oracle/join/OuterJoinExpression.java
+++ 
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/segment/oracle/join/OuterJoinExpression.java
@@ -37,8 +37,10 @@ public class OuterJoinExpression implements 
ExpressionSegment {
     
     private final String joinOperator;
     
+    private final String text;
+    
     @Override
     public String getText() {
-        return getColumnName().toString();
+        return text;
     }
 }
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/column/OuterJoinExpressionAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/column/OuterJoinExpressionAssert.java
index a4d6deb188d..ef883d67fff 100644
--- 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/column/OuterJoinExpressionAssert.java
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/column/OuterJoinExpressionAssert.java
@@ -21,6 +21,7 @@ import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import 
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.join.OuterJoinExpression;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.SQLSegmentAssert;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.expr.ExpectedOuterJoinExpression;
 
 import static org.hamcrest.CoreMatchers.is;
@@ -42,6 +43,8 @@ public final class OuterJoinExpressionAssert {
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, 
final OuterJoinExpression actual, final ExpectedOuterJoinExpression expected) {
         ColumnAssert.assertIs(assertContext, actual.getColumnName(), 
expected.getColumn());
-        assertThat(actual.getJoinOperator(), is(expected.getJoinOperator()));
+        assertThat(assertContext.getText("Outer join expression join operator 
assertion error: "), actual.getJoinOperator(), is(expected.getJoinOperator()));
+        assertThat(assertContext.getText("Outer join expression text assertion 
error: "), actual.getText(), is(expected.getText()));
+        SQLSegmentAssert.assertIs(assertContext, actual, expected);
     }
 }
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/expr/ExpectedOuterJoinExpression.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/expr/ExpectedOuterJoinExpression.java
index 6e94e8e0d69..60dbb82dcf7 100644
--- 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/expr/ExpectedOuterJoinExpression.java
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/expr/ExpectedOuterJoinExpression.java
@@ -22,6 +22,7 @@ import lombok.Setter;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.AbstractExpectedSQLSegment;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.column.ExpectedColumn;
 
+import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 
 /**
@@ -37,4 +38,6 @@ public final class ExpectedOuterJoinExpression extends 
AbstractExpectedSQLSegmen
     @XmlElement(name = "join-operator")
     private String joinOperator;
     
+    @XmlAttribute
+    private String text;
 }
diff --git a/test/it/parser/src/main/resources/case/ddl/create-view.xml 
b/test/it/parser/src/main/resources/case/ddl/create-view.xml
index 077655e596c..3b5c93f0e2f 100644
--- a/test/it/parser/src/main/resources/case/ddl/create-view.xml
+++ b/test/it/parser/src/main/resources/case/ddl/create-view.xml
@@ -206,7 +206,7 @@
                                     </column>
                                 </left>
                                 <right>
-                                    <outer-join-expression>
+                                    <outer-join-expression start-index="130" 
stop-index="145" text="m.planet_name(+)">
                                         <column name="planet_name" 
start-index="130" stop-index="142">
                                             <owner name="m" start-index="130" 
stop-index="130" />
                                         </column>
@@ -219,7 +219,7 @@
                         <right>
                             <binary-operation-expression start-index="151" 
stop-index="174">
                                 <left>
-                                    <outer-join-expression>
+                                    <outer-join-expression start-index="151" 
stop-index="159" text="m.name(+)">
                                         <column name="name" start-index="151" 
stop-index="156">
                                             <owner name="m" start-index="151" 
stop-index="151" />
                                         </column>
@@ -583,7 +583,7 @@
                             </column>
                         </left>
                         <right>
-                            <outer-join-expression>
+                            <outer-join-expression start-index="91" 
stop-index="102" text="d.deptno (+)">
                                 <column name="deptno" start-index="91" 
stop-index="98">
                                     <owner name="d" start-index="91" 
stop-index="91" />
                                 </column>
@@ -708,7 +708,7 @@
                 <expr>
                     <binary-operation-expression start-index="103" 
stop-index="125">
                         <left>
-                            <outer-join-expression>
+                            <outer-join-expression start-index="103" 
stop-index="114" text="e.deptno (+)">
                                 <column name="deptno" start-index="103" 
stop-index="110">
                                     <owner name="e" start-index="103" 
stop-index="103" />
                                 </column>
diff --git a/test/it/parser/src/main/resources/case/dml/select-join.xml 
b/test/it/parser/src/main/resources/case/dml/select-join.xml
index 8be0db91320..2d32fb4713d 100644
--- a/test/it/parser/src/main/resources/case/dml/select-join.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-join.xml
@@ -574,7 +574,7 @@
             <expr>
                 <binary-operation-expression start-index="47" stop-index="72">
                     <left>
-                        <outer-join-expression start-index="47" 
stop-index="48">
+                        <outer-join-expression start-index="47" 
stop-index="59" text="o.order_id(+)">
                             <column name="order_id" start-index="47" 
stop-index="56">
                                 <owner name="o" start-index="47" 
stop-index="47" />
                             </column>

Reply via email to