This is an automated email from the ASF dual-hosted git repository.
tuichenchuxin 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 70c6edb3596 Identify primary key and unique key in constraint
definition (#29979)
70c6edb3596 is described below
commit 70c6edb35968923f6f140c44cfc94d3c1682c6c3
Author: ZhangCheng <[email protected]>
AuthorDate: Tue Feb 6 18:10:46 2024 +0800
Identify primary key and unique key in constraint definition (#29979)
---
.../parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java | 2 ++
.../common/segment/ddl/constraint/ConstraintDefinitionSegment.java | 4 ++++
2 files changed, 6 insertions(+)
diff --git
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
index 364ac7cdf3d..0bac97d305e 100644
---
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
+++
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
@@ -590,6 +590,7 @@ public final class MySQLDDLStatementVisitor extends
MySQLStatementVisitor implem
result.setConstraintName((ConstraintSegment)
visit(ctx.constraintClause().constraintName()));
}
if (null != ctx.KEY() && null != ctx.PRIMARY()) {
+ result.setPrimaryKey(true);
result.getPrimaryKeyColumns().addAll(((CollectionValue)
visit(ctx.keyListWithExpression())).getValue());
return result;
}
@@ -598,6 +599,7 @@ public final class MySQLDDLStatementVisitor extends
MySQLStatementVisitor implem
return result;
}
if (null != ctx.UNIQUE()) {
+ result.setUniqueKey(true);
result.getIndexColumns().addAll(((CollectionValue)
visit(ctx.keyListWithExpression())).getValue());
if (null != ctx.indexName()) {
result.setIndexName((IndexSegment) visit(ctx.indexName()));
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/constraint/ConstraintDefinitionSegment.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/constraint/ConstraintDefinitionSegment.java
index 5a25ca9e762..665528921ca 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/constraint/ConstraintDefinitionSegment.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/constraint/ConstraintDefinitionSegment.java
@@ -52,6 +52,10 @@ public final class ConstraintDefinitionSegment implements
CreateDefinitionSegmen
private SimpleTableSegment referencedTable;
+ private boolean uniqueKey;
+
+ private boolean primaryKey;
+
/**
* Get constraint name.
*