trino icon indicating copy to clipboard operation
trino copied to clipboard

Generate specialized loops for aggregations

Open dain opened this issue 3 years ago • 0 comments

Description

The generate aggregations loops have specialized paths for dictionary or run length encoded data, and for masked or unmasked data. This change requires that aggregation function using the block and position calling convention have a separate @BlockIndex for each argument so dictionary and rle blocks can have a independent index.

This change can be disabled with compiler.specialized-aggregation-loops=false incase we find problems.

Release notes

( ) This is not user-visible and no release notes are required. ( ) Release notes are required, please propose a release note for me. (x) Release notes are required, with the following suggested text:

# General
* Improve performance of aggregation functions. ({issue}`14178`)

# SPI
* Annotated aggregations function block and position calling convention now requires a `@BlockIndex` for each parameter which must appear immediately after each `@BlockPosition` parameter. ({issue}`14178`)

dain avatar Sep 18 '22 18:09 dain