修正运算符优先级别处理不当的问题

git-svn-id: http://code.alibabatech.com/svn/druid/trunk@160 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
wenshao
2011-05-20 16:05:38 +00:00
parent 2b19baff03
commit 431e080bdf
54 changed files with 1085 additions and 114 deletions
@@ -70,6 +70,7 @@ import com.alibaba.druid.sql.ast.statement.SQLSelectOrderByItem;
import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
import com.alibaba.druid.sql.ast.statement.SQLSelectStatement;
import com.alibaba.druid.sql.ast.statement.SQLSetStatement;
import com.alibaba.druid.sql.ast.statement.SQLSubqueryTableSource;
import com.alibaba.druid.sql.ast.statement.SQLTableElement;
import com.alibaba.druid.sql.ast.statement.SQLUnionQuery;
import com.alibaba.druid.sql.ast.statement.SQLUniqueConstraint;
@@ -664,10 +665,7 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter {
public boolean visit(SQLUnionQuery x) {
x.getLeft().accept(this);
println();
print("UNION");
if (x.isAll()) {
print(" ALL");
}
print(x.getOperator().name);
println();
x.getRight().accept(this);
return false;
@@ -817,4 +815,15 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter {
return false;
}
@Override
public boolean visit(SQLSubqueryTableSource x) {
print("(");
incrementIndent();
x.getSelect().accept(this);
decrementIndent();
print(")");
return false;
}
}
@@ -68,6 +68,7 @@ import com.alibaba.druid.sql.ast.statement.SQLSelectOrderByItem;
import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
import com.alibaba.druid.sql.ast.statement.SQLSelectStatement;
import com.alibaba.druid.sql.ast.statement.SQLSetStatement;
import com.alibaba.druid.sql.ast.statement.SQLSubqueryTableSource;
import com.alibaba.druid.sql.ast.statement.SQLTableElement;
import com.alibaba.druid.sql.ast.statement.SQLUnionQuery;
import com.alibaba.druid.sql.ast.statement.SQLUniqueConstraint;
@@ -324,4 +325,8 @@ public interface SQLASTVisitor {
void endVisit(SQLListExpr x);
boolean visit(SQLListExpr x);
void endVisit(SQLSubqueryTableSource x);
boolean visit(SQLSubqueryTableSource x);
}
@@ -69,6 +69,7 @@ import com.alibaba.druid.sql.ast.statement.SQLSelectOrderByItem;
import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
import com.alibaba.druid.sql.ast.statement.SQLSelectStatement;
import com.alibaba.druid.sql.ast.statement.SQLSetStatement;
import com.alibaba.druid.sql.ast.statement.SQLSubqueryTableSource;
import com.alibaba.druid.sql.ast.statement.SQLTableElement;
import com.alibaba.druid.sql.ast.statement.SQLUnionQuery;
import com.alibaba.druid.sql.ast.statement.SQLUniqueConstraint;
@@ -550,6 +551,16 @@ public class SQLASTVisitorAdapter implements SQLASTVisitor {
@Override
public boolean visit(SQLListExpr x) {
return false;
return true;
}
@Override
public void endVisit(SQLSubqueryTableSource x) {
}
@Override
public boolean visit(SQLSubqueryTableSource x) {
return true;
}
}