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>