You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by tu...@apache.org on 2023/02/16 06:22:19 UTC

[shardingsphere] branch master updated: Fix grammar for oracle xmlSerializeFunction (#24175)

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

tuichenchuxin 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 fbe8cc11980 Fix grammar for oracle xmlSerializeFunction (#24175)
fbe8cc11980 is described below

commit fbe8cc119807144cbfef76b84ea373bc570d21a9
Author: jiangtao <ji...@gmail.com>
AuthorDate: Thu Feb 16 14:22:11 2023 +0800

    Fix grammar for oracle xmlSerializeFunction (#24175)
    
    * Fix grammar for oracle xmlSerializeFunction
    
    * Re-ci
---
 .../dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4     | 2 +-
 .../dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4      | 8 ++++++--
 test/it/parser/src/main/resources/case/dml/select.xml             | 6 +++---
 test/it/parser/src/main/resources/sql/supported/dml/select.xml    | 2 +-
 4 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/sql-parser/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4 b/sql-parser/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
index 6f616e8144b..679f62166d7 100644
--- a/sql-parser/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
+++ b/sql-parser/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
@@ -1664,7 +1664,7 @@ xmlRootFunction
     ;
 
 xmlSerializeFunction
-    : XMLSERIALIZE LP_ (DOCUMENT | CONTENT) expr (AS dataType)? (ENCODING STRING_)? (VERSION stringLiterals)? (NO IDENT | IDENT (SIZE EQ_ INTEGER_)?)? ((HIDE | SHOW) DEFAULT)? RP_
+    : XMLSERIALIZE LP_ (DOCUMENT | CONTENT) expr (AS dataType)? (ENCODING STRING_)? (VERSION stringLiterals)? (NO INDENT | INDENT (SIZE EQ_ INTEGER_)?)? ((HIDE | SHOW) DEFAULTS)? RP_
     ;
 
 xmlTableFunction
diff --git a/sql-parser/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4 b/sql-parser/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
index bb0bc7a76b1..abac20553db 100644
--- a/sql-parser/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
+++ b/sql-parser/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
@@ -463,6 +463,10 @@ AVG
 DEFAULT
     : D E F A U L T
     ;
+    
+DEFAULTS
+    : D E F A U L T S
+    ;    
 
 CURRENT
     : C U R R E N T
@@ -740,8 +744,8 @@ ENCODING
     : E N C O D I N G
     ;
 
-IDENT
-    : I D E N T
+INDENT
+    : I N D E N T
     ;
 
 HIDE
diff --git a/test/it/parser/src/main/resources/case/dml/select.xml b/test/it/parser/src/main/resources/case/dml/select.xml
index 039ccd14135..b9a4ad1a2bf 100644
--- a/test/it/parser/src/main/resources/case/dml/select.xml
+++ b/test/it/parser/src/main/resources/case/dml/select.xml
@@ -4788,11 +4788,11 @@
     </select>
 
     <select sql-case-id="select_xmlserialize_function">
-        <projections start-index="7" stop-index="96">
-            <expression-projection text="XMLSERIALIZE(DOCUMENT c2 AS BLOB ENCODING 'UTF-8' VERSION 'a' IDENT SIZE = 0 SHOW DEFAULT)" start-index="7" stop-index="96" />
+        <projections start-index="7" stop-index="98">
+            <expression-projection text="XMLSERIALIZE(DOCUMENT c2 AS BLOB ENCODING 'UTF-8' VERSION 'a' IDENT SIZE = 0 SHOW DEFAULT)" start-index="7" stop-index="98" />
         </projections>
         <from>
-            <simple-table name="b" start-index="103" stop-index="103" />
+            <simple-table name="b" start-index="105" stop-index="105" />
         </from>
     </select>
 
diff --git a/test/it/parser/src/main/resources/sql/supported/dml/select.xml b/test/it/parser/src/main/resources/sql/supported/dml/select.xml
index 973fcf2b9bf..b3a2ebd9c8e 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select.xml
@@ -153,7 +153,7 @@
     <sql-case id="select_xmlpi_function" value="SELECT XMLPI(NAME &quot;Order analysisComp&quot;, 'imported, reconfigured, disassembled') AS 'XMLPI' FROM DUAL;" db-types="Oracle" />
     <sql-case id="select_xmlquery_function" value="SELECT XMLQUERY('//student[@age=20]' PASSING BY VALUE xcol AS x RETURNING CONTENT NULL ON EMPTY) FROM x_table;" db-types="Oracle" />
     <sql-case id="select_xmlroot_function" value="SELECT XMLROOT(XMLType('143598'), VERSION '1.0', STANDALONE YES) AS 'XMLROOT' FROM DUAL;" db-types="Oracle" />
-    <sql-case id="select_xmlserialize_function" value="SELECT XMLSERIALIZE(DOCUMENT c2 AS BLOB ENCODING 'UTF-8' VERSION 'a' IDENT SIZE = 0 SHOW DEFAULT) FROM b;" db-types="Oracle" />
+    <sql-case id="select_xmlserialize_function" value="SELECT XMLSERIALIZE(DOCUMENT c2 AS BLOB ENCODING 'UTF-8' VERSION 'a' INDENT SIZE = 0 SHOW DEFAULTS) FROM b;" db-types="Oracle" />
     <sql-case id="select_from_xmltable_function" value="SELECT warehouse_name warehouse, warehouse2.Water, warehouse2.Rail FROM warehouses, XMLTABLE('/Warehouse' PASSING warehouses.warehouse_spec COLUMNS &quot;Water&quot; varchar2(6) PATH 'WaterAccess',&quot;Rail&quot; varchar2(6) PATH 'RailAccess') warehouse2;" db-types="Oracle" />
     <sql-case id="select_with_null_keyword_in_projection" value="select null as order_id, item_id from t_order" db-types="MySQL" />
     <sql-case id="select_literal_type_cast_money" value="SELECT '$99'::money" db-types="PostgreSQL,openGauss" />