Remove derived fields from RI_QueryKey, and do a bit of other cleanup.
We really only need the foreign key constraint's OID and the query type
code to uniquely identify each plan we are caching for FK checks. The
other stuff that was in the struct had no business being used as part of
a hash key, and was all just being copied from struct RI_ConstraintInfo
anyway. Get rid of the unnecessary fields, and readjust various function
APIs to make them use RI_ConstraintInfo not RI_QueryKey as info source.
I'd be surprised if this makes any measurable performance difference,
but it certainly feels cleaner.
src/backend/utils/adt/ri_triggers.c | 458 +++++++++++++++--------------------
1 files changed, 194 insertions(+), 264 deletions(-)
pgsql-committers by date
|Next:||From: Tom Lane||Date: 2012-06-18 23:37:34|
|Subject: pgsql: Allow ON UPDATE/DELETE SET DEFAULT plans to be cached.|
|Previous:||From: Peter Eisentraut||Date: 2012-06-18 21:00:37|
|Subject: pgsql: pg_dump: Add missing newlines at end of messages|