mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-14 05:43:51 +00:00
(improvement)(headless) fix derived metric parse error (#665)
This commit is contained in:
@@ -9,10 +9,12 @@ import java.util.stream.Collectors;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.sf.jsqlparser.JSQLParserException;
|
||||
import net.sf.jsqlparser.expression.BinaryExpression;
|
||||
import net.sf.jsqlparser.expression.CaseExpression;
|
||||
import net.sf.jsqlparser.expression.Expression;
|
||||
import net.sf.jsqlparser.expression.ExpressionVisitorAdapter;
|
||||
import net.sf.jsqlparser.expression.Function;
|
||||
import net.sf.jsqlparser.expression.StringValue;
|
||||
import net.sf.jsqlparser.expression.WhenClause;
|
||||
import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
|
||||
import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
|
||||
import net.sf.jsqlparser.expression.operators.conditional.XorExpression;
|
||||
@@ -500,6 +502,18 @@ public class SqlParserSelectHelper {
|
||||
getColumnFromExpr(expr, columns);
|
||||
}
|
||||
}
|
||||
if (expression instanceof CaseExpression) {
|
||||
CaseExpression expr = (CaseExpression) expression;
|
||||
if (Objects.nonNull(expr.getWhenClauses())) {
|
||||
for (WhenClause whenClause : expr.getWhenClauses()) {
|
||||
getColumnFromExpr(whenClause.getWhenExpression(), columns);
|
||||
getColumnFromExpr(whenClause.getThenExpression(), columns);
|
||||
}
|
||||
}
|
||||
if (Objects.nonNull(expr.getElseExpression())) {
|
||||
getColumnFromExpr(expr.getElseExpression(), columns);
|
||||
}
|
||||
}
|
||||
if (expression instanceof BinaryExpression) {
|
||||
BinaryExpression expr = (BinaryExpression) expression;
|
||||
getColumnFromExpr(expr.getLeftExpression(), columns);
|
||||
|
||||
Reference in New Issue
Block a user