improve sql wall

This commit is contained in:
yakolee
2014-03-14 13:38:39 +08:00
parent e45c682685
commit 0981b4f83b
7 changed files with 28 additions and 21 deletions
@@ -27,7 +27,8 @@ public class MySqlWallTest134 extends TestCase {
public void test_false() throws Exception {
WallProvider provider = new MySqlWallProvider();
Assert.assertFalse(provider.checkValid("SELECT 1 FROM dual WHERE 1 = '1'''''''''''''UNION SELECT '2';"));
Assert.assertTrue(provider.checkValid("SELECT 1 FROM dual WHERE 1 = '1'''''''''''''UNION SELECT '2';"));
Assert.assertFalse(provider.checkValid("SELECT 1 FROM t WHERE 1 = '1'''''''''''''UNION SELECT '2';"));
}
}
@@ -34,7 +34,7 @@ public class MySqlWallTest49 extends TestCase {
public void test_false() throws Exception {
WallProvider provider = new MySqlWallProvider();
Assert.assertFalse(provider.checkValid(//
Assert.assertTrue(provider.checkValid(//
"select temp.*, u.CanComment, u.CanBeShared, " + //
" u.CanForward, COALESCE(b.UserID,0) as isBlocked, " + //
" COALESCE(f.UserID,0) as Followed, COALESCE(ff.UserID,0) as IsFollowed, " + //
@@ -35,7 +35,7 @@ public class MySqlWallTest62 extends TestCase {
WallProvider provider = new MySqlWallProvider();
provider.getConfig().setSchemaCheck(true);
Assert.assertFalse(provider.checkValid(//
Assert.assertTrue(provider.checkValid(//
"select temp.*, u.CanComment, u.CanBeShared, u.CanForward, COALESCE(b.UserID,0) as isBlocked" + //
" , COALESCE(f.UserID,0) as Followed, COALESCE(ff.UserID,0) as IsFollowed" + //
" , COALESCE(ul.UserID,0) as liked, COALESCE(fff.UserID,0) as RIsFollowed " + //
@@ -50,6 +50,19 @@ public class MySqlWallTest62 extends TestCase {
Assert.assertEquals(4, provider.getTableStats().size());
}
public void test_false() throws Exception {
WallProvider provider = new MySqlWallProvider();
provider.getConfig().setSchemaCheck(true);
String sql = "SELECT 1, 2, 3" + //
" UNION ALL SELECT a from tt " + //
" UNION ALL SELECT 2 FROM dual ";
Assert.assertFalse(provider.checkValid(sql));
sql = "SELECT a from t UNION ALL SELECT 2 FROM dual ";
Assert.assertFalse(provider.checkValid(sql));
}
}