postgresql/src/include/executor
Daniel Gustafsson d35d32d711 Add special case fast-paths for strict functions
Many STRICT function calls will have one or two arguments, in which
case we can speed up checking for NULL input by avoiding setting up
a loop over the arguments. This adds EEOP_FUNCEXPR_STRICT_1 and the
corresponding EEOP_FUNCEXPR_STRICT_2 for functions with one and two
arguments respectively.

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
2025-03-11 12:02:42 +01:00
..
execAsync.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
execdebug.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
execdesc.h Don't lock partitions pruned by initial pruning 2025-02-20 17:09:48 +09:00
execExpr.h Add special case fast-paths for strict functions 2025-03-11 12:02:42 +01:00
execParallel.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
execPartition.h Track unpruned relids to avoid processing pruned relations 2025-02-07 17:15:09 +09:00
execScan.h Refactor ExecScan() to allow inlining of its core logic 2025-01-21 12:53:03 +09:00
executor.h Replace EEOP_DONE with special steps for return/no return 2025-03-11 12:02:38 +01:00
functions.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
hashjoin.h Get rid of our dependency on type "long" for memory size calculations. 2025-01-31 13:52:40 -05:00
instrument.h Move wal_buffers_full from PgStat_PendingWalStats to WalUsage 2025-02-17 13:14:28 +09:00
nodeAgg.h Add missing typedefs.list entry for AggStatePerGroupData. 2025-01-07 14:33:21 -08:00
nodeAppend.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeBitmapAnd.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeBitmapHeapscan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeBitmapIndexscan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeBitmapOr.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeCtescan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeCustom.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeForeignscan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeFunctionscan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeGather.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeGatherMerge.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeGroup.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeHash.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeHashjoin.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeIncrementalSort.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeIndexonlyscan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeIndexscan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeLimit.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeLockRows.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeMaterial.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeMemoize.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeMergeAppend.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeMergejoin.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeModifyTable.h Virtual generated columns 2025-02-07 09:46:59 +01:00
nodeNamedtuplestorescan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeNestloop.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeProjectSet.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeRecursiveunion.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeResult.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeSamplescan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeSeqscan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeSetOp.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeSort.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeSubplan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeSubqueryscan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeTableFuncscan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeTidrangescan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeTidscan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeUnique.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeValuesscan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeWindowAgg.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
nodeWorktablescan.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
spi.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
spi_priv.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
tablefunc.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
tqueue.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
tstoreReceiver.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
tuptable.h Update copyright for 2025 2025-01-01 11:21:55 -05:00