Allow ON UPDATE/DELETE SET DEFAULT plans to be cached.
Once upon a time, somebody was worried that cached RI plans wouldn't get
remade with new default values after ALTER TABLE ... SET DEFAULT, so they
didn't allow caching of plans for ON UPDATE/DELETE SET DEFAULT actions.
That time is long gone, though (and even at the time I doubt this was the
greatest hazard posed by ALTER TABLE...). So allow these triggers to cache
their plans just like the others.
The cache_plan argument to ri_PlanCheck is now vestigial, since there
are no callers that don't pass "true"; but I left it alone in case there
is any future need for it.
src/backend/utils/adt/ri_triggers.c | 24 +++++++++---------
src/test/regress/expected/foreign_key.out | 36 +++++++++++++++++++++++++++++
src/test/regress/sql/foreign_key.sql | 17 +++++++++++++
3 files changed, 65 insertions(+), 12 deletions(-)
pgsql-committers by date
|Next:||From: Tom Lane||Date: 2012-06-19 02:46:03|
|Subject: pgsql: Improve comments about why SET DEFAULT triggers must recheckfor|
|Previous:||From: Tom Lane||Date: 2012-06-18 22:51:03|
|Subject: pgsql: Remove derived fields from RI_QueryKey,and do a bit of other cl|