trino
                                
                                
                                
                                    trino copied to clipboard
                            
                            
                            
                        Generate specialized loops for aggregations
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`)