Thread: pgsql: Postpone some more stuff out of ExecInitModifyTable.
Postpone some more stuff out of ExecInitModifyTable. Delay creation of the projections for INSERT and UPDATE tuples until they're needed. This saves a pretty fair amount of work when only some of the partitions are actually touched. The logic associated with identifying junk columns in UPDATE/DELETE is moved to another loop, allowing removal of one loop over the target relations; but it didn't actually change at all. Extracted from a larger patch, which seemed to me to be too messy to push in one commit. Amit Langote, reviewed at different times by Heikki Linnakangas and myself Discussion: https://postgr.es/m/CA+HiwqG7ZruBmmih3wPsBZ4s0H2EhywrnXEduckY5Hr3fWzPWA@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/a1115fa0782378a8238045d238ae70cac36be8ae Modified Files -------------- src/backend/executor/execMain.c | 1 + src/backend/executor/nodeModifyTable.c | 365 +++++++++++++++++++-------------- src/include/nodes/execnodes.h | 2 + 3 files changed, 210 insertions(+), 158 deletions(-)