Closed
Description
The desired behavior is a user friendly error message stating that full-text functions cannot be used as projections. Related to #47365.
sql> SELECT MATCH(gender, 'F') FROM test_emp;
Server error [Server encountered an error [Cannot cast org.elasticsearch.xpack.sql.expression.predicate.fulltext.MatchQueryPredicate to org.elasticsearch.xpack.sql.expression.NamedExpression]. [java.lang.ClassCastException: Cannot cast org.elasticsearch.xpack.sql.expression.predicate.fulltext.MatchQueryPredicate to org.elasticsearch.xpack.sql.expression.NamedExpression
at java.base/java.lang.Class.cast(Class.java:3606)
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.visitList(AbstractBuilder.java:63)
at org.elasticsearch.xpack.sql.parser.LogicalPlanBuilder.visitQuerySpecification(LogicalPlanBuilder.java:129)
at org.elasticsearch.xpack.sql.parser.LogicalPlanBuilder.visitQuerySpecification(LogicalPlanBuilder.java:64)
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$QuerySpecificationContext.accept(SqlBaseParser.java:1722)
at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:70)
at org.elasticsearch.xpack.sql.parser.SqlBaseBaseVisitor.visitQueryPrimaryDefault(SqlBaseBaseVisitor.java:125)
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$QueryPrimaryDefaultContext.accept(SqlBaseParser.java:1552)
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.typedParsing(AbstractBuilder.java:42)
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.plan(AbstractBuilder.java:53)
at org.elasticsearch.xpack.sql.parser.LogicalPlanBuilder.visitQueryNoWith(LogicalPlanBuilder.java:95)
at org.elasticsearch.xpack.sql.parser.LogicalPlanBuilder.visitQueryNoWith(LogicalPlanBuilder.java:64)
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$QueryNoWithContext.accept(SqlBaseParser.java:1362)
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.typedParsing(AbstractBuilder.java:42)
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.plan(AbstractBuilder.java:53)
at org.elasticsearch.xpack.sql.parser.LogicalPlanBuilder.visitQuery(LogicalPlanBuilder.java:72)
at org.elasticsearch.xpack.sql.parser.LogicalPlanBuilder.visitQuery(LogicalPlanBuilder.java:64)
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$QueryContext.accept(SqlBaseParser.java:1279)
at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:70)
at org.elasticsearch.xpack.sql.parser.SqlBaseBaseVisitor.visitStatementDefault(SqlBaseBaseVisitor.java:34)
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$StatementDefaultContext.accept(SqlBaseParser.java:465)
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.typedParsing(AbstractBuilder.java:42)
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.plan(AbstractBuilder.java:53)
at org.elasticsearch.xpack.sql.parser.AstBuilder.visitSingleStatement(AstBuilder.java:26)
at org.elasticsearch.xpack.sql.parser.AstBuilder.visitSingleStatement(AstBuilder.java:15)
at org.elasticsearch.xpack.sql.parser.SqlBaseParser$SingleStatementContext.accept(SqlBaseParser.java:185)
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.typedParsing(AbstractBuilder.java:42)
at org.elasticsearch.xpack.sql.parser.AbstractBuilder.plan(AbstractBuilder.java:53)
at org.elasticsearch.xpack.sql.parser.SqlParser.invokeParser(SqlParser.java:129)
at org.elasticsearch.xpack.sql.parser.SqlParser.createStatement(SqlParser.java:66)
at org.elasticsearch.xpack.sql.session.SqlSession.doParse(SqlSession.java:99)