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<>();