You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2022/06/24 02:34:17 UTC

[shardingsphere] branch master updated: 修改内容: (#18235)

This is an automated email from the ASF dual-hosted git repository.

zhangliang 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 87cf87e459e 修改内容: (#18235)
87cf87e459e is described below

commit 87cf87e459e5c110b89e7f58fff370ced91f2e12
Author: youcai <zq...@hotmail.com>
AuthorDate: Fri Jun 24 10:34:10 2022 +0800

    修改内容: (#18235)
    
    support inline constraint support
---
 .../visitor/statement/impl/OracleDDLStatementSQLVisitor.java  | 11 +++++++++++
 .../common/segment/ddl/column/ColumnDefinitionSegment.java    |  2 ++
 2 files changed, 13 insertions(+)

diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDDLStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDDLStatementSQLVisitor.java
index 0af9a0ce6fd..2a9423203b6 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDDLStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDDLStatementSQLVisitor.java
@@ -260,8 +260,10 @@ public final class OracleDDLStatementSQLVisitor extends OracleStatementSQLVisito
         ColumnSegment column = (ColumnSegment) visit(ctx.columnName());
         DataTypeSegment dataType = (DataTypeSegment) visit(ctx.dataType());
         boolean isPrimaryKey = isPrimaryKey(ctx);
+        boolean isNotNull = isNotNull(ctx);
         ColumnDefinitionSegment result = new ColumnDefinitionSegment(
                 ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), column, dataType, isPrimaryKey);
+        result.setNotNull(isNotNull);
         for (InlineConstraintContext each : ctx.inlineConstraint()) {
             if (null != each.referencesClause()) {
                 result.getReferencedTables().add((SimpleTableSegment) visit(each.referencesClause().tableName()));
@@ -281,6 +283,15 @@ public final class OracleDDLStatementSQLVisitor extends OracleStatementSQLVisito
         }
         return false;
     }
+
+    private boolean isNotNull(final ColumnDefinitionContext ctx) {
+        for (InlineConstraintContext each : ctx.inlineConstraint()) {
+            if (null != each.NOT() && null != each.NULL()) {
+                return true;
+            }
+        }
+        return false;
+    }
     
     @SuppressWarnings("unchecked")
     @Override
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/column/ColumnDefinitionSegment.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/column/ColumnDefinitionSegment.java
index f9f8989e8e3..0614a842ad5 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/column/ColumnDefinitionSegment.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/column/ColumnDefinitionSegment.java
@@ -42,6 +42,8 @@ public final class ColumnDefinitionSegment implements CreateDefinitionSegment {
     private DataTypeSegment dataType;
     
     private boolean primaryKey;
+
+    private boolean notNull;
     
     private final Collection<SimpleTableSegment> referencedTables = new LinkedList<>();