Add a "provariadic" column to pg_proc to eliminate the remarkably expensive
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 16 Jul 2008 16:55:24 +0000 (16:55 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 16 Jul 2008 16:55:24 +0000 (16:55 +0000)
commit3edfabd14ec11dfb68d9c03015ebe35b79fd3a79
tree2ea6c68ac5dba94f5490046eaa54b1dd175508ac
parent451033021684eb2cbe186317b314569fd6904849
Add a "provariadic" column to pg_proc to eliminate the remarkably expensive
need to deconstruct proargmodes for each pg_proc entry inspected by
FuncnameGetCandidates().  Fixes function lookup performance regression
caused by yesterday's variadic-functions patch.

In passing, make pg_proc.probin be NULL, rather than a dummy value '-',
in cases where it is not actually used for the particular type of function.
This should buy back some of the space cost of the extra column.
14 files changed:
doc/src/sgml/catalogs.sgml
src/backend/catalog/namespace.c
src/backend/catalog/pg_aggregate.c
src/backend/catalog/pg_proc.c
src/backend/commands/functioncmds.c
src/backend/utils/adt/ruleutils.c
src/backend/utils/fmgr/fmgr.c
src/bin/pg_dump/pg_dump.c
src/include/catalog/catversion.h
src/include/catalog/pg_attribute.h
src/include/catalog/pg_class.h
src/include/catalog/pg_proc.h
src/test/regress/expected/opr_sanity.out
src/test/regress/sql/opr_sanity.sql