pgsql: Cache the results of ri_FetchConstraintInfo in a backend-local c - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Cache the results of ri_FetchConstraintInfo in a backend-local c
Date
Msg-id E1ShSOT-0004ac-M6@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Cache the results of ri_FetchConstraintInfo in a backend-local cache.

Extracting data from pg_constraint turned out to take as much as 10% of the
runtime in a bulk-update case where the foreign key column wasn't changing,
because we did it over again for each tuple.  Fix that by maintaining a
backend-local cache of the results.  This is really a pretty small patch,
but converting the trigger functions to work with pointers rather than
local struct variables requires a lot of mechanical changes.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/45ba424f332a7eaa685a4e23f142a43114c65811

Modified Files
--------------
src/backend/utils/adt/ri_triggers.c |  548 ++++++++++++++++++++---------------
1 files changed, 319 insertions(+), 229 deletions(-)


pgsql-committers by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: pgsql: Remove confusing half sentence from legal notice
Next
From: Tom Lane
Date:
Subject: pgsql: Increase MAX_SYSCACHE_CALLBACKS from 20 to 32.