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 ed75896cf67 Add rules for oracle alter type. (#27887)
ed75896cf67 is described below
commit ed75896cf67af6c3556d9dc388e12faa25702dca
Author: boyjoy1127 <[email protected]>
AuthorDate: Thu Aug 3 17:52:28 2023 +0800
Add rules for oracle alter type. (#27887)
* feat: add alter type SQL.
* feat: add alter type SQL.
* feat: add rules for alter type.
* feat: add rules for alter type.
* feat: add rules for alter type.
* feat: add rules for alter type.
* feat: add rules for alter type.
* feat: add rules for alter type.
* feat: add rules for alter type.
* feat: add rules for alter type.
---
.../dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4 | 7 ++++++-
test/it/parser/src/main/resources/case/ddl/alter-type.xml | 4 ++++
test/it/parser/src/main/resources/sql/supported/ddl/alter-type.xml | 4 ++++
3 files changed, 14 insertions(+), 1 deletion(-)
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 ba5cd1ccfe8..c26fd2c2c61 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
@@ -3763,8 +3763,13 @@ alterAttributeDefinition
| DROP ATTRIBUTE ( attributeName | LP_ attributeName (COMMA_
attributeName)* RP_)
;
+alterCollectionClauses
+ : MODIFY (LIMIT INTEGER_ | ELEMENT TYPE dataType)
+ ;
+
alterType
- : ALTER TYPE typeName
(compileTypeClause|replaceTypeClause|RESET|(alterMethodSpec|alterAttributeDefinition))?
+ : ALTER TYPE typeName (compileTypeClause | replaceTypeClause | RESET
+ | (alterMethodSpec | alterAttributeDefinition | alterCollectionClauses |
NOT (INSTANTIABLE | FINAL)))?
;
createCluster
diff --git a/test/it/parser/src/main/resources/case/ddl/alter-type.xml
b/test/it/parser/src/main/resources/case/ddl/alter-type.xml
index a7af32e931d..be2abd84961 100644
--- a/test/it/parser/src/main/resources/case/ddl/alter-type.xml
+++ b/test/it/parser/src/main/resources/case/ddl/alter-type.xml
@@ -83,4 +83,8 @@
<alter-type sql-case-id="alter_type_modify_multi_attribute" />
<alter-type sql-case-id="alter_type_drop_single_attribute" />
<alter-type sql-case-id="alter_type_drop_multi_attribute" />
+ <alter-type sql-case-id="alter_type_modify_limit" />
+ <alter-type sql-case-id="alter_type_modify_element_type" />
+ <alter-type sql-case-id="alter_type_not_instantiable" />
+ <alter-type sql-case-id="alter_type_not_final" />
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/alter-type.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/alter-type.xml
index ca9ea8827bd..a814f51bde0 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/alter-type.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-type.xml
@@ -128,4 +128,8 @@
<sql-case id="alter_type_modify_multi_attribute" value="ALTER TYPE
type_name MODIFY ATTRIBUTE (c1 NUMBER, b1 BOOL)" db-types="Oracle" />
<sql-case id="alter_type_drop_single_attribute" value="ALTER TYPE
type_name DROP ATTRIBUTE c1" db-types="Oracle" />
<sql-case id="alter_type_drop_multi_attribute" value="ALTER TYPE type_name
DROP ATTRIBUTE (c1,b1)" db-types="Oracle" />
+ <sql-case id="alter_type_modify_limit" value="ALTER TYPE type_name MODIFY
LIMIT 999" db-types="Oracle" />
+ <sql-case id="alter_type_modify_element_type" value="ALTER TYPE type_name
MODIFY ELEMENT TYPE NUMBER" db-types="Oracle" />
+ <sql-case id="alter_type_not_instantiable" value="ALTER TYPE type_name NOT
INSTANTIABLE" db-types="Oracle" />
+ <sql-case id="alter_type_not_final" value="ALTER TYPE type_name NOT FINAL"
db-types="Oracle" />
</sql-cases>