mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
@@ -1327,9 +1327,9 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Paramet
|
||||
}
|
||||
|
||||
protected void printInteger(SQLIntegerExpr x, boolean parameterized) {
|
||||
long val = x.getNumber().longValue();
|
||||
String val = x.getNumber().toString();
|
||||
|
||||
if (val == 1) {
|
||||
if ("1".equals(val)) {
|
||||
if (JdbcConstants.ORACLE.equals(dbType)) {
|
||||
SQLObject parent = x.getParent();
|
||||
if (parent instanceof SQLBinaryOpExpr) {
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.alibaba.druid.bvt.sql;
|
||||
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.postgresql.parser.PGSQLStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.postgresql.visitor.PGOutputVisitor;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
public class UnsignedBigIntTest extends TestCase {
|
||||
|
||||
public void test_mysqlUnsignedBitInt() throws Exception {
|
||||
String sql = "SELECT a from b where c <> 1 LIMIT 18446744073709551615 OFFSET 0";
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
SQLStatement sqlStatement = parser.parseStatement();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
MySqlOutputVisitor visitor = new MySqlOutputVisitor(sb);
|
||||
visitor.setPrettyFormat(false);
|
||||
sqlStatement.accept(visitor);
|
||||
assertEquals("SELECT a FROM b WHERE c <> 1 LIMIT 0, 18446744073709551615", sb.toString());
|
||||
}
|
||||
|
||||
public void test_postgresqlUnsignedBitInt() {
|
||||
String sql = "SELECT a from b where c <> 1 LIMIT 18446744073709551615 OFFSET 1";
|
||||
PGSQLStatementParser parser = new PGSQLStatementParser(sql);
|
||||
SQLStatement sqlStatement = parser.parseStatement();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
PGOutputVisitor visitor = new PGOutputVisitor(sb);
|
||||
visitor.setPrettyFormat(false);
|
||||
sqlStatement.accept(visitor);
|
||||
assertEquals("SELECT a FROM b WHERE c <> 1 LIMIT 18446744073709551615 OFFSET 1", sb.toString());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user