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

chengzhang 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 949551e8f9c Support Oracle Arrow Symbol parse (#27900)
949551e8f9c is described below

commit 949551e8f9cc800f4317124a94575ecbaa769fe1
Author: Zichao <[email protected]>
AuthorDate: Fri Aug 4 13:09:13 2023 +1200

    Support Oracle Arrow Symbol parse (#27900)
---
 .../dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4 |  1 +
 .../dialect/oracle/src/main/antlr4/imports/oracle/Symbol.g4   |  1 +
 .../parser/src/main/resources/case/dml/select-expression.xml  | 11 +++++++++++
 .../main/resources/sql/supported/dml/select-expression.xml    |  1 +
 4 files changed, 14 insertions(+)

diff --git 
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4 
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
index ff70e0f8ef8..098fbabb399 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
@@ -683,6 +683,7 @@ bitExpr
     | bitExpr MOD_ bitExpr
     | bitExpr CARET_ bitExpr
     | bitExpr DOT_ bitExpr
+    | bitExpr ARROW_ bitExpr
     ;
 
 simpleExpr
diff --git a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Symbol.g4 
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Symbol.g4
index 840290e3cbe..8388c081011 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Symbol.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Symbol.g4
@@ -59,3 +59,4 @@ AT_:                 '@';
 SEMI_:               ';';
 DOLLAR_:             '$';
 ASSIGNMENT_OPERATOR_:':=';
+ARROW_:              '=>';
diff --git a/test/it/parser/src/main/resources/case/dml/select-expression.xml 
b/test/it/parser/src/main/resources/case/dml/select-expression.xml
index c888a8913f2..f25b136a918 100644
--- a/test/it/parser/src/main/resources/case/dml/select-expression.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-expression.xml
@@ -2734,4 +2734,15 @@
             <simple-table start-index="50" stop-index="53" name="DUAL" />
         </from>
     </select>
+    
+    <select sql-case-id="select_arrow_symbol_in_function">
+        <projections start-index="7" stop-index="103">
+            <expression-projection start-index="7" stop-index="103" 
text="DECODE(DBMS_COMPRESSION.GET_COMPRESSION_TYPE(ownname => 'HR'), 'No 
Compression')" alias="compression_type">
+                <function function-name="DECODE" 
text="DECODE(DBMS_COMPRESSION.GET_COMPRESSION_TYPE(ownname => 'HR'), 'No 
Compression')" alias="compression_type" />
+            </expression-projection>
+        </projections>
+        <from>
+            <simple-table start-index="110" stop-index="113" name="DUAL" />
+        </from>
+    </select>
 </sql-parser-test-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml
index c89f80252d6..60df36f1ab7 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml
@@ -115,4 +115,5 @@
     <sql-case id="select_with_multiset_union_expression" value="SELECT 
customer_id, cust_address_ntab MULTISET UNION cust_address2_ntab multiset_union 
FROM customers_demo ORDER BY customer_id;" db-types="Oracle" />
     <sql-case id="select_collect_expression" value="SELECT 
CAST(COLLECT(warehouse_name ORDER BY warehouse_name) AS warehouse_name_t) 
&quot;Warehouses&quot; FROM warehouses;" db-types="Oracle" />
     <sql-case id="select_expr_dot_expr" value="SELECT 
DBURIType('/HR/DEPARTMENTS').getXML() FROM DUAL;" db-types="Oracle" />
+    <sql-case id="select_arrow_symbol_in_function" value="SELECT 
DECODE(DBMS_COMPRESSION.GET_COMPRESSION_TYPE(ownname => 'HR'), 'No 
Compression') compression_type FROM DUAL;" db-types="Oracle" />
 </sql-cases>

Reply via email to