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)