From ed1fc448c315c06309c46d8d4977588f35f4bd78 Mon Sep 17 00:00:00 2001 From: wenshao Date: Fri, 10 Aug 2012 17:28:33 +0800 Subject: [PATCH] bug fixed SQLUtils.format --- .../java/com/alibaba/druid/sql/SQLUtils.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/alibaba/druid/sql/SQLUtils.java b/src/main/java/com/alibaba/druid/sql/SQLUtils.java index 630dca4658..a05d04f77d 100644 --- a/src/main/java/com/alibaba/druid/sql/SQLUtils.java +++ b/src/main/java/com/alibaba/druid/sql/SQLUtils.java @@ -16,14 +16,18 @@ import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerOutputVisitor; import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerSchemaStatVisitor; import com.alibaba.druid.sql.parser.ParserException; import com.alibaba.druid.sql.parser.SQLExprParser; +import com.alibaba.druid.sql.parser.SQLParseException; import com.alibaba.druid.sql.parser.SQLParserUtils; import com.alibaba.druid.sql.parser.SQLStatementParser; import com.alibaba.druid.sql.parser.Token; import com.alibaba.druid.sql.visitor.SQLASTOutputVisitor; import com.alibaba.druid.sql.visitor.SchemaStatVisitor; +import com.alibaba.druid.support.logging.Log; +import com.alibaba.druid.support.logging.LogFactory; import com.alibaba.druid.util.JdbcUtils; public class SQLUtils { + private final static Log LOG = LogFactory.getLog(SQLUtils.class); public static String toSQLString(SQLObject sqlObject, String dbType) { if (JdbcUtils.MYSQL.equals(dbType)) { @@ -118,16 +122,22 @@ public class SQLUtils { } public static String format(String sql, String dbType) { - List statementList = toStatementList(sql, dbType); + try { + List statementList = toStatementList(sql, dbType); - StringBuilder out = new StringBuilder(); - SQLASTOutputVisitor visitor = createFormatOutputVisitor(out, statementList, dbType); + StringBuilder out = new StringBuilder(); + SQLASTOutputVisitor visitor = createFormatOutputVisitor(out, statementList, dbType); - for (SQLStatement stmt : statementList) { - stmt.accept(visitor); + for (SQLStatement stmt : statementList) { + stmt.accept(visitor); + } + + return out.toString(); + } catch (SQLParseException ex) { + LOG.warn("format error", ex); + + return sql; } - - return out.toString(); } public static SQLASTOutputVisitor createFormatOutputVisitor(Appendable out, List statementList,