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 19b85f5fd0..1cf0a559fe 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java @@ -479,7 +479,7 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Paramet SQLExpr left = binaryItem.getLeft(); SQLExpr right = binaryItem.getRight(); - if (right instanceof SQLLiteralExpr) { + if (right instanceof SQLLiteralExpr && !(right instanceof SQLNullExpr)) { if (left instanceof SQLLiteralExpr) { if (literalItems == null) { literalItems = new ArrayList(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/param/MySqlParameterizedOutputVisitorTest_57.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/param/MySqlParameterizedOutputVisitorTest_57.java index b8a95cfbce..b4bc42858d 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/param/MySqlParameterizedOutputVisitorTest_57.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/param/MySqlParameterizedOutputVisitorTest_57.java @@ -2,6 +2,7 @@ package com.alibaba.druid.bvt.sql.mysql.param; import com.alibaba.druid.sql.SQLUtils; import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.parser.SQLParserFeature; import com.alibaba.druid.sql.parser.SQLParserUtils; import com.alibaba.druid.sql.parser.SQLStatementParser; import com.alibaba.druid.sql.visitor.SQLASTOutputVisitor; @@ -28,7 +29,7 @@ public class MySqlParameterizedOutputVisitorTest_57 extends TestCase { " OR (`ktv_resource`.`AVAILABLE_COUNT` = -1))" + ") limit 0,20"; - SQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, dbType); + SQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, dbType, SQLParserFeature.EnableSQLBinaryOpExprGroup); List stmtList = parser.parseStatementList(); SQLStatement stmt = stmtList.get(0); @@ -50,6 +51,8 @@ public class MySqlParameterizedOutputVisitorTest_57 extends TestCase { System.out.println(psql); + + assertEquals("SELECT `ktv_resource`.`VERSION`\n" + "FROM ktv_resource `ktv_resource`\n" + "WHERE `ktv_resource`.`BUYER_ID` = ?\n" +