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>

Reply via email to