|
@@ -10,8 +10,8 @@ import org.antlr.v4.runtime.ParserRuleContext;
|
|
|
import org.antlr.v4.runtime.Token;
|
|
|
import org.antlr.v4.runtime.tree.ParseTree;
|
|
|
import org.antlr.v4.runtime.tree.TerminalNode;
|
|
|
-import org.elasticsearch.core.Booleans;
|
|
|
import org.elasticsearch.common.Strings;
|
|
|
+import org.elasticsearch.core.Booleans;
|
|
|
import org.elasticsearch.core.Tuple;
|
|
|
import org.elasticsearch.xpack.ql.QlIllegalArgumentException;
|
|
|
import org.elasticsearch.xpack.ql.expression.Alias;
|
|
@@ -136,6 +136,7 @@ import static java.util.Collections.emptyList;
|
|
|
import static java.util.Collections.singletonList;
|
|
|
import static org.elasticsearch.xpack.ql.parser.ParserUtils.source;
|
|
|
import static org.elasticsearch.xpack.ql.parser.ParserUtils.text;
|
|
|
+import static org.elasticsearch.xpack.ql.parser.ParserUtils.typedParsing;
|
|
|
import static org.elasticsearch.xpack.ql.parser.ParserUtils.visitList;
|
|
|
import static org.elasticsearch.xpack.sql.type.SqlDataTypeConverter.canConvert;
|
|
|
import static org.elasticsearch.xpack.sql.type.SqlDataTypeConverter.converterFor;
|
|
@@ -154,7 +155,7 @@ abstract class ExpressionBuilder extends IdentifierBuilder {
|
|
|
}
|
|
|
|
|
|
protected Expression expression(ParseTree ctx) {
|
|
|
- return typedParsing(ctx, Expression.class);
|
|
|
+ return typedParsing(this, ctx, Expression.class);
|
|
|
}
|
|
|
|
|
|
protected List<Expression> expressions(List<? extends ParserRuleContext> contexts) {
|
|
@@ -407,7 +408,7 @@ abstract class ExpressionBuilder extends IdentifierBuilder {
|
|
|
public Cast visitCastExpression(CastExpressionContext ctx) {
|
|
|
CastTemplateContext castTc = ctx.castTemplate();
|
|
|
if (castTc != null) {
|
|
|
- return new Cast(source(castTc), expression(castTc.expression()), typedParsing(castTc.dataType(), DataType.class));
|
|
|
+ return new Cast(source(castTc), expression(castTc.expression()), typedParsing(this, castTc.dataType(), DataType.class));
|
|
|
} else {
|
|
|
ConvertTemplateContext convertTc = ctx.convertTemplate();
|
|
|
DataType dataType = dataType(source(convertTc.dataType()), convertTc.dataType().getText());
|
|
@@ -426,7 +427,7 @@ abstract class ExpressionBuilder extends IdentifierBuilder {
|
|
|
|
|
|
@Override
|
|
|
public Object visitCastOperatorExpression(SqlBaseParser.CastOperatorExpressionContext ctx) {
|
|
|
- return new Cast(source(ctx), expression(ctx.primaryExpression()), typedParsing(ctx.dataType(), DataType.class));
|
|
|
+ return new Cast(source(ctx), expression(ctx.primaryExpression()), typedParsing(this, ctx.dataType(), DataType.class));
|
|
|
}
|
|
|
|
|
|
@Override
|