OSDN Git Service

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)
commit6563e9e2e8b15350e4cb99b86f2f7dec54722155
tree312342db5f13289768a09d3dca49fc1bf9c2b0da
parent895a4bccb6663ad04b02905fcbf128e64d30abd9
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