mirror of
https://github.com/postgres/postgres.git
synced 2026-02-10 14:23:26 -05:00
Store the tuple conversion map to convert a tuple from a child table's format to the root format in a new ri_ChildToRootMap field in ResultRelInfo. It is initialized if transition tuple capture for FOR STATEMENT triggers or INSERT tuple routing on a partitioned table is needed. Previously, ModifyTable kept the maps in the per-subplan ModifyTableState->mt_per_subplan_tupconv_maps array, or when tuple routing was used, in ResultRelInfo->ri_Partitioninfo->pi_PartitionToRootMap. The new field replaces both of those. Now that the child-to-root tuple conversion map is always available in ResultRelInfo (when needed), remove the TransitionCaptureState.tcs_map field. The callers of Exec*Trigger() functions no longer need to set or save it, which is much less confusing and bug-prone. Also, as a future optimization, this will allow us to delay creating the map for a given result relation until the relation is actually processed during execution. Author: Amit Langote Discussion: https://www.postgresql.org/message-id/CA%2BHiwqHtCWLdK-LO%3DNEsvOdHx%2B7yv4mE_zYK0i3BH7dXb-wxog%40mail.gmail.com |
||
|---|---|---|
| .. | ||
| alter.h | ||
| async.h | ||
| cluster.h | ||
| collationcmds.h | ||
| comment.h | ||
| conversioncmds.h | ||
| copy.h | ||
| createas.h | ||
| dbcommands.h | ||
| dbcommands_xlog.h | ||
| defrem.h | ||
| discard.h | ||
| event_trigger.h | ||
| explain.h | ||
| extension.h | ||
| lockcmds.h | ||
| matview.h | ||
| policy.h | ||
| portalcmds.h | ||
| prepare.h | ||
| proclang.h | ||
| progress.h | ||
| publicationcmds.h | ||
| schemacmds.h | ||
| seclabel.h | ||
| sequence.h | ||
| subscriptioncmds.h | ||
| tablecmds.h | ||
| tablespace.h | ||
| trigger.h | ||
| typecmds.h | ||
| user.h | ||
| vacuum.h | ||
| variable.h | ||
| view.h | ||