From 63b1af94375cc2be06a5d6a932db24cd8e9f45e9 Mon Sep 17 00:00:00 2001 From: David Rowley Date: Sun, 4 Jul 2021 18:47:31 +1200 Subject: Cleanup some aggregate code in the executor Here we alter the code that calls build_pertrans_for_aggref() so that the function no longer needs to special-case whether it's dealing with an aggtransfn or an aggcombinefn. This allows us to reuse the build_aggregate_transfn_expr() function and just get rid of the build_aggregate_combinefn_expr() completely. All of the special case code that was in build_pertrans_for_aggref() has been moved up to the calling functions. This saves about a dozen lines of code in nodeAgg.c and a few dozen more in parse_agg.c Also, rename a few variables in nodeAgg.c to try to make it more clear that we're working with either a aggtransfn or an aggcombinefn. Some of the old names would have you believe that we were always working with an aggtransfn. Discussion: https://postgr.es/m/CAApHDvptMQ9FmF0D67zC_w88yVnoNVR2+kkOQGUrCmdxWxLULQ@mail.gmail.com --- src/include/parser/parse_agg.h | 5 ----- 1 file changed, 5 deletions(-) (limited to 'src/include/parser/parse_agg.h') diff --git a/src/include/parser/parse_agg.h b/src/include/parser/parse_agg.h index 4dea01752af..bffbb82df66 100644 --- a/src/include/parser/parse_agg.h +++ b/src/include/parser/parse_agg.h @@ -46,11 +46,6 @@ extern void build_aggregate_transfn_expr(Oid *agg_input_types, Expr **transfnexpr, Expr **invtransfnexpr); -extern void build_aggregate_combinefn_expr(Oid agg_state_type, - Oid agg_input_collation, - Oid combinefn_oid, - Expr **combinefnexpr); - extern void build_aggregate_serialfn_expr(Oid serialfn_oid, Expr **serialfnexpr); -- cgit v1.2.3