sqlancer.tidb.visitor.TiDBVisitor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sqlancer Show documentation
Show all versions of sqlancer Show documentation
SQLancer finds logic bugs in Database Management Systems through automatic testing
package sqlancer.tidb.visitor;
import sqlancer.tidb.ast.TiDBAggregate;
import sqlancer.tidb.ast.TiDBCase;
import sqlancer.tidb.ast.TiDBCastOperation;
import sqlancer.tidb.ast.TiDBColumnReference;
import sqlancer.tidb.ast.TiDBConstant;
import sqlancer.tidb.ast.TiDBExpression;
import sqlancer.tidb.ast.TiDBFunctionCall;
import sqlancer.tidb.ast.TiDBJoin;
import sqlancer.tidb.ast.TiDBSelect;
import sqlancer.tidb.ast.TiDBTableReference;
import sqlancer.tidb.ast.TiDBText;
public interface TiDBVisitor {
default void visit(TiDBExpression expr) {
if (expr instanceof TiDBConstant) {
visit((TiDBConstant) expr);
} else if (expr instanceof TiDBColumnReference) {
visit((TiDBColumnReference) expr);
} else if (expr instanceof TiDBSelect) {
visit((TiDBSelect) expr);
} else if (expr instanceof TiDBTableReference) {
visit((TiDBTableReference) expr);
} else if (expr instanceof TiDBFunctionCall) {
visit((TiDBFunctionCall) expr);
} else if (expr instanceof TiDBJoin) {
visit((TiDBJoin) expr);
} else if (expr instanceof TiDBText) {
visit((TiDBText) expr);
} else if (expr instanceof TiDBAggregate) {
visit((TiDBAggregate) expr);
} else if (expr instanceof TiDBCastOperation) {
visit((TiDBCastOperation) expr);
} else if (expr instanceof TiDBCase) {
visit((TiDBCase) expr);
} else {
throw new AssertionError(expr.getClass());
}
}
void visit(TiDBCase caseExpr);
void visit(TiDBCastOperation cast);
void visit(TiDBAggregate aggr);
void visit(TiDBFunctionCall call);
void visit(TiDBConstant expr);
void visit(TiDBColumnReference expr);
void visit(TiDBTableReference expr);
void visit(TiDBSelect select);
void visit(TiDBJoin join);
void visit(TiDBText text);
static String asString(TiDBExpression expr) {
TiDBToStringVisitor v = new TiDBToStringVisitor();
v.visit(expr);
return v.getString();
}
}