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.
      *

Reply via email to