From 6fd33e2213c20180e0109d1a3701b015d1f09841 Mon Sep 17 00:00:00 2001 From: wenshao Date: Sat, 21 May 2011 07:42:25 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=BE=93=E5=87=BA=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/druid/trunk@174 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../mysql/visitor/MySqlOutputVisitor.java | 30 +++++++++++-------- .../sql/visitor/SQLASTOutputVisitor.java | 8 ++++- src/test/resources/bvt/parser/mysql-7.txt | 9 +++++- 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java index a0879a32f7..9cc6aa1d4c 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java @@ -67,7 +67,7 @@ public class MySqlOutputVisitor extends SQLASTOutputVisitor implements MySqlASTV public boolean visit(MySqlBooleanExpr x) { print(x.getValue() ? "true" : "false"); - + return false; } @@ -709,30 +709,36 @@ public class MySqlOutputVisitor extends SQLASTOutputVisitor implements MySqlASTV x.getTableName().accept(this); if (x.getColumns().size() > 0) { - print(" ("); + incrementIndent(); + println(); + print("("); for (int i = 0, size = x.getColumns().size(); i < size; ++i) { if (i != 0) { + if (i % 5 == 0) { + println(); + } print(", "); } + x.getColumns().get(i).accept(this); } print(")"); + decrementIndent(); } if (x.getValuesList().size() != 0) { - print(" VALUES "); - int size = x.getValuesList().size(); - if (size == 0) { - print("()"); - } else { - for (int i = 0; i < size; ++i) { - if (i != 0) { - print(", "); - } - x.getValuesList().get(i).accept(this); + println(); + print("VALUES "); + println(); + for (int i = 0, size = x.getValuesList().size(); i < size; ++i) { + if (i != 0) { + print(", "); } + x.getValuesList().get(i).accept(this); } + } + if (x.getQuery() != null) { print(" "); x.getQuery().accept(this); 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 3099feb57c..aabb6bfeb8 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java @@ -597,8 +597,8 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter { } x.getColumns().get(i).accept(this); } - decrementIndent(); print(")"); + decrementIndent(); } if (x.getValues() != null) { @@ -778,12 +778,18 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter { @Override public boolean visit(ValuesClause x) { print("("); + incrementIndent(); for (int i = 0, size = x.getValues().size(); i < size; ++i) { if (i != 0) { + if (i % 5 == 0) { + println(); + } print(", "); } + x.getValues().get(i).accept(this); } + decrementIndent(); print(")"); return false; } diff --git a/src/test/resources/bvt/parser/mysql-7.txt b/src/test/resources/bvt/parser/mysql-7.txt index d019c0eb68..30884d229e 100644 --- a/src/test/resources/bvt/parser/mysql-7.txt +++ b/src/test/resources/bvt/parser/mysql-7.txt @@ -9,5 +9,12 @@ insert into accontexchangeinfo a --------------------------- -INSERT INTO accontexchangeinfo (a.id, a.sourceid, a.batchno, a.applicant, a.out_uid, a.in_uid, a.moneytype, a.amount, a.remark, a.gmt_create, a.gmt_modified) VALUES (SEQ_ACCONTEXCHANGEINFO.nextval, ?, ?, ?, ?, ?, ?, ?, ?, SYSDATE, SYSDATE) +INSERT INTO accontexchangeinfo + (a.id, a.sourceid, a.batchno, a.applicant, a.out_uid + , a.in_uid, a.moneytype, a.amount, a.remark, a.gmt_create + , a.gmt_modified) +VALUES +(SEQ_ACCONTEXCHANGEINFO.nextval, ?, ?, ?, ? + , ?, ?, ?, ?, SYSDATE + , SYSDATE)