Thanks Weston. This is probably an issue with ibis producer then:
https://github.com/ibis-project/ibis-substrait/blob/6db09a721281e1fc325cf6d23c0a1a20fe37af73/ibis_substrait/compiler/translate.py#L1100

I will change that code and see if I can get it to work.

On Mon, Jul 10, 2023 at 5:47 PM Weston Pace <weston.p...@gmail.com> wrote:

> Yes, that is correct.
>
> What Substrait calls "groupings" is what is often referred to in SQL as
> "grouping sets".  These allow you to compute the same aggregates but group
> by different criteria.  Two very common ways of creating grouping sets are
> "group by cube" and "group by rollup".  Snowflake's documentation for
> rollup[1] describes the motivation quite well:
>
> > You can think of rollup as generating multiple result sets, each
> > of which (after the first) is the aggregate of the previous result
> > set. So, for example, if you own a chain of retail stores, you
> > might want to see the profit for:
> >  * Each store.
> >  * Each city (large cities might have multiple stores).
> >  * Each state.
> >  * Everything (all stores in all states).
>
> Acero does not currently handle more than one grouping set.
>
>
> [1] https://docs.snowflake.com/en/sql-reference/constructs/group-by-rollup
>
> On Mon, Jul 10, 2023 at 2:22 PM Li Jin <ice.xell...@gmail.com> wrote:
>
> > Hi,
> >
> > I am looking at the substrait protobuf for AggregateRel as well the Acero
> > substrait consumer code:
> >
> >
> >
> https://github.com/apache/arrow/blob/main/cpp/src/arrow/engine/substrait/relation_internal.cc#L851
> >
> >
> https://github.com/substrait-io/substrait/blob/main/proto/substrait/algebra.proto#L209
> >
> > Looks like in subtrait, AggregateRel can have multiple groupings and each
> > grouping can have multiple expressions. Let's say now I want to "compute
> > sum and mean on column A group by column B, C, D" (for Acero to execute).
> > Is the right way to create one grouping with 3 expressions (direct
> > reference) for "column B, C, D"?
> >
> > Thanks,
> > Li
> >
>

Reply via email to