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" />