mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
bug fixed for sql parser OutputVisitor.
This commit is contained in:
@@ -33,7 +33,7 @@ public class SQLUnaryExpr extends SQLExprImpl implements Serializable {
|
||||
|
||||
public SQLUnaryExpr(SQLUnaryOperator operator, SQLExpr expr){
|
||||
this.operator = operator;
|
||||
this.expr = expr;
|
||||
this.setExpr(expr);
|
||||
}
|
||||
|
||||
public SQLUnaryOperator getOperator() {
|
||||
@@ -49,6 +49,9 @@ public class SQLUnaryExpr extends SQLExprImpl implements Serializable {
|
||||
}
|
||||
|
||||
public void setExpr(SQLExpr expr) {
|
||||
if (expr != null) {
|
||||
expr.setParent(this);
|
||||
}
|
||||
this.expr = expr;
|
||||
}
|
||||
|
||||
|
||||
@@ -826,7 +826,8 @@ public class MySqlOutputVisitor extends SQLASTOutputVisitor implements MySqlASTV
|
||||
@Override
|
||||
public boolean visit(MySqlIntervalExpr x) {
|
||||
print0(ucase ? "INTERVAL " : "interval ");
|
||||
x.getValue().accept(this);
|
||||
SQLExpr value = x.getValue();
|
||||
value.accept(this);
|
||||
print(' ');
|
||||
print0(ucase ? x.getUnit().name() : x.getUnit().name_lcase);
|
||||
return false;
|
||||
|
||||
@@ -463,10 +463,13 @@ public class SQLExprParser extends SQLParser {
|
||||
sqlExpr = new SQLUnaryExpr(SQLUnaryOperator.Negative, sqlExpr);
|
||||
|
||||
break;
|
||||
case QUES:
|
||||
sqlExpr = new SQLUnaryExpr(SQLUnaryOperator.Negative, new SQLVariantRefExpr("?"));
|
||||
case QUES: {
|
||||
SQLVariantRefExpr variantRefExpr = new SQLVariantRefExpr("?");
|
||||
variantRefExpr.setIndex(lexer.nextVarIndex());
|
||||
sqlExpr = new SQLUnaryExpr(SQLUnaryOperator.Negative, variantRefExpr);
|
||||
lexer.nextToken();
|
||||
break;
|
||||
}
|
||||
case LPAREN:
|
||||
lexer.nextToken();
|
||||
sqlExpr = expr();
|
||||
|
||||
Reference in New Issue
Block a user