Replace EEOP_DONE with special steps for return/no return
Daniel Gustafsson <dgustafsson@postgresql.org>
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
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/executor/execExpr.c | modified | +12 −12 |
| src/backend/executor/execExprInterp.c | modified | +17 −8 |
| src/backend/executor/nodeAgg.c | modified | +2 −5 |
| src/backend/executor/README | modified | +8 −3 |
| src/backend/jit/llvm/llvmjit_expr.c | modified | +5 −1 |
| src/include/executor/execExpr.h | modified | +5 −2 |
| src/include/executor/executor.h | modified | +49 −3 |
Discussion
- Special-case executor expression steps for common combinations 16 messages · 2023-10-12 → 2025-03-12
- WIP: expression evaluation improvements 25 messages · 2019-10-23 → 2021-11-05