mirror of
https://github.com/postgres/postgres.git
synced 2025-07-12 21:01:52 +03:00
Replace EEOP_DONE with special steps for return/no return
Knowing when the side-effects of an expression is the intended result of the execution, rather than the returnvalue, is important for being able generate more efficient JITed code. This replaces EEOP_DONE with two new steps: EEOP_DONE_RETURN and EEOP_DONE_NO_RETURN. Expressions which return a value should use the former step; expressions used for their side-effects which don't return value should use the latter. Author: Andres Freund <andres@anarazel.de> Co-authored-by: Daniel Gustafsson <daniel@yesql.se> Reviewed-by: Andreas Karlsson <andreas@proxel.se> Discussion: https://postgr.es/m/415721CE-7D2E-4B74-B5D9-1950083BA03E@yesql.se Discussion: https://postgr.es/m/20191023163849.sosqbfs5yenocez3@alap3.anarazel.de
This commit is contained in:
@ -816,11 +816,8 @@ advance_transition_function(AggState *aggstate,
|
||||
static void
|
||||
advance_aggregates(AggState *aggstate)
|
||||
{
|
||||
bool dummynull;
|
||||
|
||||
ExecEvalExprSwitchContext(aggstate->phase->evaltrans,
|
||||
aggstate->tmpcontext,
|
||||
&dummynull);
|
||||
ExecEvalExprNoReturnSwitchContext(aggstate->phase->evaltrans,
|
||||
aggstate->tmpcontext);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user