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 ecdf27defe4 PostgreSQL And OpenGauss Support Get Rename Column (#27883)
ecdf27defe4 is described below
commit ecdf27defe427e565ca141e84f0620746e334fa2
Author: Edison Catto <[email protected]>
AuthorDate: Sun Sep 24 16:06:22 2023 +0800
PostgreSQL And OpenGauss Support Get Rename Column (#27883)
* PostgreSQL Support Rename Column
* add test
---------
Co-authored-by: sunkang <[email protected]>
---
.../visitor/statement/type/OpenGaussDDLStatementVisitor.java | 5 +++++
.../visitor/statement/type/PostgreSQLDDLStatementVisitor.java | 5 +++++
test/it/parser/src/main/resources/case/ddl/alter-table.xml | 4 ++++
3 files changed, 14 insertions(+)
diff --git
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
index ff57857de21..7148414366b 100644
---
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
+++
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
@@ -314,6 +314,8 @@ public final class OpenGaussDDLStatementVisitor extends
OpenGaussStatementVisito
result.getDropConstraintDefinitions().add((DropConstraintDefinitionSegment)
each);
} else if (each instanceof RenameTableDefinitionSegment) {
result.setRenameTable(((RenameTableDefinitionSegment)
each).getRenameTable());
+ } else if (each instanceof RenameColumnSegment) {
+
result.getRenameColumnDefinitions().add((RenameColumnSegment) each);
}
}
}
@@ -336,6 +338,9 @@ public final class OpenGaussDDLStatementVisitor extends
OpenGaussStatementVisito
if (null != ctx.alterTableActions()) {
result.getValue().addAll(ctx.alterTableActions().alterTableAction().stream().flatMap(each
-> getAlterDefinitionSegments(each).stream()).collect(Collectors.toList()));
}
+ if (null != ctx.renameColumnSpecification()) {
+ result.getValue().add((RenameColumnSegment)
visit(ctx.renameColumnSpecification()));
+ }
if (null != ctx.renameTableSpecification()) {
result.getValue().add((RenameTableDefinitionSegment)
visit(ctx.renameTableSpecification()));
}
diff --git
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
index f965f31cec6..d053bc39a7a 100644
---
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
+++
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
@@ -387,6 +387,8 @@ public final class PostgreSQLDDLStatementVisitor extends
PostgreSQLStatementVisi
result.getDropConstraintDefinitions().add((DropConstraintDefinitionSegment)
each);
} else if (each instanceof RenameTableDefinitionSegment) {
result.setRenameTable(((RenameTableDefinitionSegment)
each).getRenameTable());
+ } else if (each instanceof RenameColumnSegment) {
+
result.getRenameColumnDefinitions().add((RenameColumnSegment) each);
}
}
}
@@ -419,6 +421,9 @@ public final class PostgreSQLDDLStatementVisitor extends
PostgreSQLStatementVisi
if (null != ctx.alterTableActions()) {
result.getValue().addAll(ctx.alterTableActions().alterTableAction().stream().flatMap(each
-> getAlterDefinitionSegments(each).stream()).collect(Collectors.toList()));
}
+ if (null != ctx.renameColumnSpecification()) {
+ result.getValue().add((RenameColumnSegment)
visit(ctx.renameColumnSpecification()));
+ }
if (null != ctx.renameTableSpecification()) {
result.getValue().add((RenameTableDefinitionSegment)
visit(ctx.renameTableSpecification()));
}
diff --git a/test/it/parser/src/main/resources/case/ddl/alter-table.xml
b/test/it/parser/src/main/resources/case/ddl/alter-table.xml
index 56feac1d810..bdad8c54252 100644
--- a/test/it/parser/src/main/resources/case/ddl/alter-table.xml
+++ b/test/it/parser/src/main/resources/case/ddl/alter-table.xml
@@ -1128,6 +1128,10 @@
<alter-table sql-case-id="alter_table_rename_column">
<table name="t_order" start-index="12" stop-index="18" />
+ <rename-column start-index="20" stop-index="52">
+ <old-column-name name="user_id" start-index="34" stop-index="40" />
+ <column-name name="user_id1" start-index="45" stop-index="52" />
+ </rename-column>
</alter-table>
<alter-table sql-case-id="alter_table_with_exist_index">