Skip to content

SQL: GROUPing BY EXTRACT of TIMESTAMP fails #41159

Closed
@astefan

Description

@astefan

This one might be similar (or identical with #40639), but not 100% sure.

SELECT EXTRACT(MINUTE FROM CONVERT("calcs"."datetime0", SQL_TIMESTAMP)) AS x FROM "calcs" GROUP BY x fails with:

Server error [Server sent bad type [folding_exception]. Original type was [line 1:8: Cannot find grouping for 'EXTRACT(MINUTE FROM CONVERT("calcs"."datetime0", TIMESTAMP))']. [FoldingException[line 1:8: Cannot find grouping for 'EXTRACT(MINUTE FROM CONVERT("calcs"."datetime0", TIMESTAMP))']
        at org.elasticsearch.xpack.sql.planner.QueryFolder$FoldAggregate.rule(QueryFolder.java:319)
        at org.elasticsearch.xpack.sql.planner.QueryFolder$FoldAggregate.rule(QueryFolder.java:203)
        at org.elasticsearch.xpack.sql.tree.Node.lambda$transformUp$11(Node.java:196)
        at org.elasticsearch.xpack.sql.tree.Node.transformUp(Node.java:190)
        at org.elasticsearch.xpack.sql.tree.Node.transformUp(Node.java:196)
        at org.elasticsearch.xpack.sql.planner.QueryFolder$FoldingRule.apply(QueryFolder.java:586)
        at org.elasticsearch.xpack.sql.planner.QueryFolder$FoldingRule.apply(QueryFolder.java:582)
        at org.elasticsearch.xpack.sql.rule.RuleExecutor$Transformation.<init>(RuleExecutor.java:82)
        at org.elasticsearch.xpack.sql.rule.RuleExecutor.executeWithInfo(RuleExecutor.java:158)
        at org.elasticsearch.xpack.sql.rule.RuleExecutor.execute(RuleExecutor.java:130)
        at org.elasticsearch.xpack.sql.planner.QueryFolder.fold(QueryFolder.java:82)
        at org.elasticsearch.xpack.sql.planner.Planner.foldPlan(Planner.java:38)
        at org.elasticsearch.xpack.sql.planner.Planner.plan(Planner.java:28)
        at org.elasticsearch.xpack.sql.session.SqlSession.lambda$physicalPlan$4(SqlSession.java:156)
        at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:62)
        at org.elasticsearch.xpack.sql.session.SqlSession.lambda$optimizedPlan$3(SqlSession.java:152)
SELECT {fn CONVERT({fn TRUNCATE({fn EXTRACT(DAY FROM {fn CONVERT("calcs"."datetime0", SQL_TIMESTAMP)})},0)}, SQL_BIGINT)} AS x
FROM "calcs"
GROUP BY 1
SELECT {fn CONVERT({fn TRUNCATE({fn EXTRACT(YEAR FROM {fn CONVERT("calcs"."datetime0", SQL_TIMESTAMP)})},0)}, SQL_BIGINT)} AS x
FROM "calcs"
GROUP BY 1

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions