You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Aleksandr Efimov (Jira)" <ji...@apache.org> on 2026/08/25 23:18:00 UTC

[jira] [Created] (IMPALA-15299) Calcite planner: cover grouping sets in the Substrait export tests

Aleksandr Efimov created IMPALA-15299:
-----------------------------------------

             Summary: Calcite planner: cover grouping sets in the Substrait export tests
                 Key: IMPALA-15299
                 URL: https://issues.apache.org/jira/browse/IMPALA-15299
             Project: IMPALA
          Issue Type: Sub-task
          Components: Frontend
            Reporter: Aleksandr Efimov


The Substrait exporter added by IMPALA-15296 is covered by query shapes that came from the direct harness, and none of them group by more than one set. Impala produces such aggregates: CoerceNodes rebuilds the LogicalAggregate with getGroupSets() untouched, and ImpalaAggRel builds one set of expressions per set, so grouping sets, rollup and cube all reach the seam as a real multi-set aggregate.

They export today, without anything added to the exporter, and nothing says so. Cover them, so that a change at the seam that flattens or reorders the sets is caught here rather than somewhere downstream.

Cover the other half too. Neither grouping() nor grouping_id() converts: Substrait has no grouping function and Isthmus does not synthesise one, which is substrait-java#993. The shape of the query makes no difference, sets or rollup or cube, one column or several, so a single case per function is enough. These belong in the tests as expected rejections rather than as candidates, since the fix is not ours to make.

The assertions are on the plan rather than on its bytes, and the sets name their fields in ascending order of first appearance. substrait-java#1161 moves the difference between Substrait's column order for a multi-set aggregate and Calcite's into the aggregate's emit mapping, and states that a plan already agreeing with Calcite round-trips unchanged, so shapes written this way are the ones that survive that upgrade.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)