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 c37f8a7dc76 Support more Alter Type statements (#28262)
c37f8a7dc76 is described below

commit c37f8a7dc7621af54387668610a5d97b3b986378
Author: qywang <[email protected]>
AuthorDate: Sat Aug 26 16:02:08 2023 +0800

    Support more Alter Type statements (#28262)
---
 .../src/main/antlr4/imports/postgresql/DDLStatement.g4 | 18 +++++++++++++++++-
 .../parser/src/main/resources/case/ddl/alter-type.xml  |  1 +
 .../main/resources/sql/supported/ddl/alter-type.xml    |  1 +
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git 
a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DDLStatement.g4
 
b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DDLStatement.g4
index 9cfdf58e721..dba4b56180d 100644
--- 
a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DDLStatement.g4
+++ 
b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DDLStatement.g4
@@ -1152,7 +1152,7 @@ alterTypeClauses
     | RENAME TO name
     | RENAME ATTRIBUTE name TO name dropBehavior?
     | SET SCHEMA name
-    | SET LP_ operatorDefList RP_
+    | SET LP_ typeDefList RP_
     | OWNER TO roleSpec
     ;
 
@@ -1166,6 +1166,22 @@ alterTypeCmd
     | ALTER ATTRIBUTE colId setData? TYPE typeName collateClause? dropBehavior?
     ;
 
+typeDefList
+    : typeDefElem (COMMA_ typeDefElem)*
+    ;
+
+typeDefElem
+    : (RECEIVE | SEND | TYPMOD_IN | TYPMOD_OUT | ANALYZE | SUBSCRIPT | 
STORAGE) EQ_ (NONE | typeDefArg)
+    ;
+
+typeDefArg
+    : funcType
+    | reservedKeyword
+    | qualAllOp
+    | numericOnly
+    | STRING_
+    ;
+
 alterUserMapping
     : ALTER USER MAPPING FOR authIdent SERVER name alterGenericOptions
     ;
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 747f1d86f47..ad6edc7f612 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
@@ -20,6 +20,7 @@
     <alter-type sql-case-id="alter_type_owner" />
     <alter-type sql-case-id="alter_type_rename" />
     <alter-type sql-case-id="alter_type_set_schema" />
+    <alter-type sql-case-id="alter_type_set_storage" />
     <alter-type sql-case-id="alter_type_add_attribute" />
     <alter-type sql-case-id="alter_type_add_value" />
     <alter-type sql-case-id="alter_type_rename_value" />
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 9281778e441..7b40f967020 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
@@ -20,6 +20,7 @@
     <sql-case id="alter_type_owner" value="ALTER TYPE compfoo1 OWNER TO usr1" 
db-types="openGauss,PostgreSQL" />
     <sql-case id="alter_type_rename" value="ALTER TYPE compfoo RENAME TO 
compfoo1;" db-types="openGauss,PostgreSQL" />
     <sql-case id="alter_type_set_schema" value="ALTER TYPE compfoo1 SET SCHEMA 
usr1;" db-types="openGauss,PostgreSQL" />
+    <sql-case id="alter_type_set_storage" value="ALTER TYPE myvarchar SET 
(storage = extended);" db-types="PostgreSQL" />
     <sql-case id="alter_type_add_attribute" value="ALTER TYPE usr1.compfoo1 
ADD ATTRIBUTE f3 int;" db-types="openGauss,PostgreSQL" />
     <sql-case id="alter_type_add_value" value="ALTER TYPE bugstatus ADD VALUE 
IF NOT EXISTS 'regress' BEFORE 'closed';" db-types="openGauss,PostgreSQL" />
     <sql-case id="alter_type_rename_value" value="ALTER TYPE bugstatus RENAME 
VALUE 'create' TO 'new';" db-types="openGauss,PostgreSQL" />

Reply via email to