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 <[email protected]>
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<>();
     

Reply via email to