mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
bug fixed for WallFilter
This commit is contained in:
+2
-1
@@ -16,11 +16,12 @@
|
||||
package com.alibaba.druid.sql.dialect.mysql.ast.statement;
|
||||
|
||||
import com.alibaba.druid.sql.ast.statement.SQLUnionQuery;
|
||||
import com.alibaba.druid.sql.dialect.mysql.ast.MySqlObject;
|
||||
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock.Limit;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;
|
||||
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
|
||||
|
||||
public class MySqlUnionQuery extends SQLUnionQuery implements MySqlStatement {
|
||||
public class MySqlUnionQuery extends SQLUnionQuery implements MySqlObject {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlInsertStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectGroupBy;
|
||||
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock;
|
||||
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock.Limit;
|
||||
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlUnionQuery;
|
||||
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlUpdateStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitorAdapter;
|
||||
@@ -222,6 +223,13 @@ public class MySqlWallVisitor extends MySqlASTVisitorAdapter implements WallVisi
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean visit(MySqlUnionQuery x) {
|
||||
WallVisitorUtils.checkUnion(this, x);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toSQL(SQLObject obj) {
|
||||
|
||||
+4
-13
@@ -28,12 +28,12 @@ import com.alibaba.druid.wall.WallUtils;
|
||||
* @version 1.0, 2012-3-18
|
||||
* @see
|
||||
*/
|
||||
public class SQLServerWallTest1 extends TestCase {
|
||||
public class MySqlWallTest1 extends TestCase {
|
||||
|
||||
/**
|
||||
* @param name
|
||||
*/
|
||||
public SQLServerWallTest1(String name){
|
||||
public MySqlWallTest1(String name){
|
||||
super(name);
|
||||
}
|
||||
|
||||
@@ -46,16 +46,7 @@ public class SQLServerWallTest1 extends TestCase {
|
||||
}
|
||||
|
||||
public void test_stuff() throws Exception {
|
||||
Assert.assertTrue(WallUtils.isValidateSqlServer( //
|
||||
"select DATE_FORMAT(staydate,'%m月') as month,sum(a) as addnum,sum(q) as quitnum " + //
|
||||
" from (" + //
|
||||
" select staydate,1 as a,0 as q " + //
|
||||
" from add_person" + //
|
||||
" union all" + //
|
||||
" select quitdate,0 as a,1 as q" + //
|
||||
" from quit_person" + //
|
||||
" ) t " + //
|
||||
"where DATE_FORMAT(staydate,'%Y')= 2012 " + //
|
||||
"group by DATE_FORMAT(staydate,'%Y-%m')"));
|
||||
Assert.assertTrue(WallUtils.isValidateMySql(//
|
||||
"select count(*) from (select DATE_FORMAT(staydate,'%m月') as month,sum(a) as addnum,sum(q) as quitnum from (select staydate,1 as a,0 as q from add_person union all select quitdate,0 as a,1 as q from quit_person) t where (DATE_FORMAT(staydate,'%Y')= ? ) group by DATE_FORMAT(staydate,'%Y-%m'))"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user