From 6ad7fa902ba12615d6b31136c5a83dd8d402a64d Mon Sep 17 00:00:00 2001 From: juicer Date: Fri, 29 Jul 2016 18:33:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=B3=E4=BA=8E=20NULL=20?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Oracle 中 原始sql :alter table aaa modify bbb null; 转换后成为: ALTER TABLE aaa MODIFY ( bbb DEFAULT NULL ); 原始Sql的语义改变了,改变了字段的default值 --- .../alibaba/druid/sql/visitor/SQLASTOutputVisitor.java | 10 ++++++++++ .../com/alibaba/druid/sql/visitor/SQLASTVisitor.java | 5 +++++ .../druid/sql/visitor/SQLASTVisitorAdapter.java | 9 +++++++++ 3 files changed, 24 insertions(+) diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java index 4c0781932e..39b0841064 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java @@ -1192,6 +1192,16 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Printab return false; } + public boolean visit(NullConstraint x) { + if (x.getName() != null) { + print0(ucase ? "CONSTRAINT " : "constraint "); + x.getName().accept(this); + print(' '); + } + print0(ucase ? "NULL" : "null"); + return false; + } + @Override public boolean visit(SQLUnionQuery x) { x.getLeft().accept(this); diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitor.java b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitor.java index 0f641957e7..61df27ff28 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitor.java @@ -716,4 +716,9 @@ public interface SQLASTVisitor { boolean visit(SQLErrorLoggingClause x); void endVisit(SQLErrorLoggingClause x); + + boolean visit(NullConstraint x); + + void endVisit(NullConstraint x); + } diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitorAdapter.java b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitorAdapter.java index fb20641240..182962c8df 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitorAdapter.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitorAdapter.java @@ -1565,4 +1565,13 @@ public class SQLASTVisitorAdapter implements SQLASTVisitor { public void endVisit(SQLErrorLoggingClause x) { } + + @Override + public boolean visit(NullConstraint x) { + return true; + } + + @Override + public void endVisit(NullConstraint x) { + } }