in parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java [1245:1283]
private ASTNode visitRemainSimpleExpr(final SimpleExprContext ctx) {
if (null != ctx.caseExpression()) {
return visit(ctx.caseExpression());
}
if (null != ctx.BINARY()) {
return visit(ctx.simpleExpr(0));
}
if (null != ctx.TILDE_()) {
return new UnaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), (ExpressionSegment) visit(ctx.simpleExpr(0)), "~", ctx.getText());
}
if (null != ctx.variable()) {
return visit(ctx.variable());
}
if (null != ctx.LP_()) {
RowExpression result = new RowExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), ctx.getText());
for (ExprContext each : ctx.expr()) {
result.getItems().add((ExpressionSegment) visit(each));
}
return result;
}
if (null != ctx.RETURNING()) {
ListExpression result = new ListExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex());
result.getItems().add(new LiteralExpressionSegment(ctx.path().start.getStartIndex(), ctx.path().stop.getStopIndex(), ctx.path().getText()));
result.getItems().add(new LiteralExpressionSegment(ctx.RETURNING().getSymbol().getStartIndex(), ctx.RETURNING().getSymbol().getStopIndex(), ctx.RETURNING().getSymbol().getText()));
result.getItems().add((ExpressionSegment) visit(ctx.dataType()));
return result;
}
if (null != ctx.LBE_()) {
return visit(ctx.expr(0));
}
for (ExprContext each : ctx.expr()) {
visit(each);
}
for (SimpleExprContext each : ctx.simpleExpr()) {
visit(each);
}
String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}