]> granicus.if.org Git - postgresql/commit
Install checks in executor startup to ensure that the tuples produced by an
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 8 Aug 2008 17:01:26 +0000 (17:01 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 8 Aug 2008 17:01:26 +0000 (17:01 +0000)
commit1a3970f7fafe9e60a34b3fef88b8a3c7c1fb58e6
tree3cca94b8d6e8cc522574da090ec6d33d8b3e822b
parentaab9979c5c8fed679e8f1240aae8cfd4e6432100
Install checks in executor startup to ensure that the tuples produced by an
INSERT or UPDATE will match the target table's current rowtype.  In pre-8.3
releases inconsistency can arise with stale cached plans, as reported by
Merlin Moncure.  (We patched the equivalent hazard on the SELECT side in Feb
2007; I'm not sure why we thought there was no risk on the insertion side.)
In 8.3 and HEAD this problem should be impossible due to plan cache
invalidation management, but it seems prudent to make the check anyway.

Back-patch as far as 8.0.  7.x versions lack ALTER COLUMN TYPE, so there
seems no way to abuse a stale plan comparably.
src/backend/executor/execMain.c