bug fixed for mysql sql parameterized.

This commit is contained in:
wenshao
2017-10-26 21:07:24 +08:00
parent 382c820961
commit 2071e4a3d1
2 changed files with 5 additions and 2 deletions
@@ -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<SQLBinaryOpExpr>();
@@ -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<SQLStatement> 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" +