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 7a95bc3e9e9 Enhance Oracle Alter operator syntax (#27830)
7a95bc3e9e9 is described below

commit 7a95bc3e9e90dd3fb590682c83a29baea2f3e330
Author: niu niu <[email protected]>
AuthorDate: Wed Aug 9 18:11:14 2023 +0800

    Enhance Oracle Alter operator syntax (#27830)
    
    * Enhance Oracle Alter operator syntax
    
    * Fix addBindingClause syntax
    
    * Fix profileName define
---
 parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4 | 2 +-
 .../dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4    | 5 +----
 test/it/parser/src/main/resources/case/ddl/alter-operator.xml        | 1 +
 .../parser/src/main/resources/sql/supported/ddl/alter-operator.xml   | 1 +
 4 files changed, 4 insertions(+), 5 deletions(-)

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 e2f6a122395..392c5ed81b2 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
@@ -1795,7 +1795,7 @@ matchString
     ;
 
 parameterType
-    : identifier
+    : (owner DOT_)? identifier
     ;
 
 returnType
diff --git 
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4 
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
index 11b9595554d..99051b1ab0f 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
@@ -2950,10 +2950,7 @@ alterOperator
     ;
 
 addBindingClause
-    : ADD BINDING LP_ parameterType (COMMA_ parameterType)* RP_
-      RETURN LP_ returnType RP_ implementationClause usingFunctionClause
-    | ADD BINDING LP_ parameterType (COMMA_ parameterType)* RP_
-      RETURN LP_ returnType RP_ usingFunctionClause
+    : ADD BINDING LP_ parameterType (COMMA_ parameterType)* RP_ RETURN (LP_ 
returnType RP_ | NUMBER) implementationClause? usingFunctionClause
     ;
 
 implementationClause
diff --git a/test/it/parser/src/main/resources/case/ddl/alter-operator.xml 
b/test/it/parser/src/main/resources/case/ddl/alter-operator.xml
index c472f58711f..9f5c5ed9ec6 100644
--- a/test/it/parser/src/main/resources/case/ddl/alter-operator.xml
+++ b/test/it/parser/src/main/resources/case/ddl/alter-operator.xml
@@ -22,4 +22,5 @@
     <alter-operator sql-case-id="alter_operator_set" />
     <alter-operator sql-case-id="alter_operator_set_restrict_join" />
     <alter-operator sql-case-id="alter_operator_compile" />
+    <alter-operator 
sql-case-id="alter_operator_add_binding_return_number_using" />
 </sql-parser-test-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/ddl/alter-operator.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/alter-operator.xml
index 6d133915790..ccd6791d4c7 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/alter-operator.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-operator.xml
@@ -22,4 +22,5 @@
     <sql-case id="alter_operator_set" value="ALTER OPERATOR === (boolean, 
boolean) SET (RESTRICT = non_existent_func);" db-types="PostgreSQL" />
     <sql-case id="alter_operator_set_restrict_join" value="ALTER OPERATOR === 
(boolean, boolean) SET (RESTRICT = customcontsel, JOIN = contjoinsel);" 
db-types="PostgreSQL" />
     <sql-case id="alter_operator_compile" value="ALTER OPERATOR eq_op 
COMPILE;" db-types="Oracle" />
+    <sql-case id="alter_operator_add_binding_return_number_using" value="ALTER 
OPERATOR Contains ADD BINDING (music.artist, music.artist) RETURN NUMBER USING 
music.contains" db-types="Oracle" />
 </sql-cases>

Reply via email to