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)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]