This commit is contained in:
温少
2012-03-14 15:53:14 +08:00
parent 6b7958dbfd
commit 6f2aad48bc
22 changed files with 347 additions and 285 deletions
@@ -41,5 +41,15 @@ public class MappingVisitorOracleTest extends TestCase {
Assert.assertEquals("DELETE FROM device\nWHERE ip = '127.0.0.1'",
engine.explainToDeleteSQL("WHERE IP地址 = '127.0.0.1'"));
}
public void test_update() throws Exception {
Assert.assertEquals("UPDATE device\nSET serviceTag = ?\nWHERE ip = '127.0.0.1'",
engine.explainToUpdateSQL("SET 编号 = ? WHERE IP地址 = '127.0.0.1'"));
}
public void test_insert() throws Exception {
Assert.assertEquals("INSERT INTO device\n\t(serviceTag, ip)\nVALUES\n(?, ?)",
engine.explainToInsertSQL("(编号, IP地址) VALUES (?, ?)"));
}
}
@@ -46,7 +46,7 @@ public class MappingVisitorTest extends TestCase {
}
public void test_insert() throws Exception {
Assert.assertEquals("INSERT INTO device\n(serviceTag, ip)\nVALUES\n(?, ?)",
Assert.assertEquals("INSERT INTO device\n\t(serviceTag, ip)\nVALUES\n(?, ?)",
engine.explainToInsertSQL("(编号, IP地址) VALUES (?, ?)"));
}
@@ -79,7 +79,7 @@ public class AssignmentOperatorsTest extends TestCase {
String text = output(stmtList);
Assert.assertEquals("UPDATE t1 SET c1 = 2 WHERE c1 = (@var1 := 1);", text);
Assert.assertEquals("UPDATE t1\nSET c1 = 2\nWHERE c1 = (@var1 := 1);", text);
}
private String output(List<SQLStatement> stmtList) {
@@ -35,7 +35,7 @@ public class MiscellaneousFunctionsTest extends TestCase {
String text = output(stmtList);
Assert.assertEquals("UPDATE t SET i = DEFAULT(i) + 1 WHERE id < 100;", text);
Assert.assertEquals("UPDATE t\nSET i = DEFAULT(i) + 1\nWHERE id < 100;", text);
}
public void test_1() throws Exception {
@@ -14,19 +14,19 @@ import com.alibaba.druid.sql.dialect.oracle.visitor.OracleParameterizedOutputVis
public class MySqlParameterizedOutputVisitorTest extends TestCase {
public void test_0() throws Exception {
validate("SELECT * FROM T WHERE ID IN (?, ?, ?)", "SELECT * FROM T WHERE ID IN (?)");
validate("SELECT * FROM T WHERE ID = 5", "SELECT * FROM T WHERE ID = ?");
validate("SELECT * FROM T WHERE 1 = 0 AND ID = 5", "SELECT * FROM T WHERE 1 = 0 AND ID = ?");
validate("SELECT * FROM T WHERE ID = ? OR ID = ?", "SELECT * FROM T WHERE ID = ?");
validate("SELECT * FROM T WHERE A.ID = ? OR A.ID = ?", "SELECT * FROM T WHERE A.ID = ?");
validate("SELECT * FROM T WHERE ID IN (?, ?, ?)", "SELECT *\nFROM T\nWHERE ID IN (?)");
validate("SELECT * FROM T WHERE ID = 5", "SELECT *\nFROM T\nWHERE ID = ?");
validate("SELECT * FROM T WHERE 1 = 0 AND ID = 5", "SELECT *\nFROM T\nWHERE 1 = 0\nAND ID = ?");
validate("SELECT * FROM T WHERE ID = ? OR ID = ?", "SELECT *\nFROM T\nWHERE ID = ?");
validate("SELECT * FROM T WHERE A.ID = ? OR A.ID = ?", "SELECT *\nFROM T\nWHERE A.ID = ?");
validate("SELECT * FROM T WHERE 1 = 0 OR a.id = ? OR a.id = ? OR a.id = ? OR a.id = ?",
"SELECT * FROM T WHERE 1 = 0 OR a.id = ?");
"SELECT *\nFROM T\nWHERE 1 = 0\nOR a.id = ?");
validateOracle("SELECT * FROM T WHERE 1 = 0 OR a.id = ? OR a.id = ? OR a.id = ? OR a.id = ?",
"SELECT * FROM T WHERE 1 = 0 OR a.id = ?; ");
validateOracle("SELECT * FROM T WHERE A.ID = ? OR A.ID = ?", "SELECT * FROM T WHERE A.ID = ?; ");
"SELECT *\nFROM T\nWHERE 1 = 0\nOR a.id = ?");
validateOracle("SELECT * FROM T WHERE A.ID = ? OR A.ID = ?", "SELECT *\nFROM T\nWHERE A.ID = ?");
validate("INSERT INTO T (F1, F2) VALUES(?, ?), (?, ?), (?, ?)", "INSERT INTO T (F1, F2) VALUES (?, ?)");
validate("update net_device d, sys_user u set d.resp_user_id=u.id where d.resp_user_login_name=u.username and d.id in (42354)", //
"UPDATE net_device d, sys_user u SET d.resp_user_id = u.id WHERE d.resp_user_login_name = u.username AND d.id IN (?)");
"UPDATE net_device d, sys_user u\nSET d.resp_user_id = u.id\nWHERE d.resp_user_login_name = u.username\nAND d.id IN (?)");
// System.out.println("SELECT * FORM A WHERE ID = (##)".replaceAll("##", "?"));
}
@@ -55,7 +55,7 @@ public class MySqlParameterizedOutputVisitorTest extends TestCase {
Assert.assertEquals(1, statementList.size());
StringBuilder out = new StringBuilder();
OracleParameterizedOutputVisitor visitor = new OracleParameterizedOutputVisitor(out);
OracleParameterizedOutputVisitor visitor = new OracleParameterizedOutputVisitor(out, false);
statemen.accept(visitor);
Assert.assertEquals(expect, out.toString());
@@ -19,8 +19,8 @@ public class MySqlParameterizedOutputVisitorTest2 extends TestCase {
sql += " OR ID = ?";
}
validate(sql, "SELECT * FROM T WHERE ID = ?");
validateOracle(sql, "SELECT * FROM T WHERE ID = ?; ");
validate(sql, "SELECT *\nFROM T\nWHERE ID = ?");
validateOracle(sql, "SELECT *\nFROM T\nWHERE ID = ?");
}
void validate(String sql, String expect) {
@@ -47,7 +47,7 @@ public class MySqlParameterizedOutputVisitorTest2 extends TestCase {
Assert.assertEquals(1, statementList.size());
StringBuilder out = new StringBuilder();
OracleParameterizedOutputVisitor visitor = new OracleParameterizedOutputVisitor(out);
OracleParameterizedOutputVisitor visitor = new OracleParameterizedOutputVisitor(out, false);
statemen.accept(visitor);
Assert.assertEquals(expect, out.toString());
@@ -321,7 +321,7 @@ public class StringFunctionsTest extends TestCase {
String text = output(stmtList);
Assert.assertEquals("UPDATE t SET blob_col = LOAD_FILE('/tmp/picture') WHERE id = 1;", text);
Assert.assertEquals("UPDATE t\nSET blob_col = LOAD_FILE('/tmp/picture')\nWHERE id = 1;", text);
}
public void test_27() throws Exception {