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(-) -- Sent via pgsql-committers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers
