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)
"Warehouses" 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>