Postpone some more stuff out of ExecInitModifyTable.
Tom Lane <tgl@sss.pgh.pa.us>
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
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/executor/execMain.c | modified | +1 −0 |
| src/backend/executor/nodeModifyTable.c | modified | +207 −158 |
| src/include/nodes/execnodes.h | modified | +2 −0 |
Discussion
- ModifyTable overheads in generic plans 47 messages · 2020-06-26 → 2021-04-14