pgsql: Add a "provariadic" column to pg_proc to eliminate the remarkably

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Add a "provariadic" column to pg_proc to eliminate the remarkably
Date: 2008-07-16 16:55:24
Message-ID: 20080716165524.80BE3754A84@cvs.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
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.

Modified Files:
--------------
pgsql/doc/src/sgml:
catalogs.sgml (r2.169 -> r2.170)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/catalogs.sgml?r1=2.169&r2=2.170)
pgsql/src/backend/catalog:
namespace.c (r1.108 -> r1.109)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/namespace.c?r1=1.108&r2=1.109)
pg_aggregate.c (r1.94 -> r1.95)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_aggregate.c?r1=1.94&r2=1.95)
pg_proc.c (r1.151 -> r1.152)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_proc.c?r1=1.151&r2=1.152)
pgsql/src/backend/commands:
functioncmds.c (r1.96 -> r1.97)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/functioncmds.c?r1=1.96&r2=1.97)
pgsql/src/backend/utils/adt:
ruleutils.c (r1.276 -> r1.277)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/ruleutils.c?r1=1.276&r2=1.277)
pgsql/src/backend/utils/fmgr:
fmgr.c (r1.120 -> r1.121)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/fmgr/fmgr.c?r1=1.120&r2=1.121)
pgsql/src/bin/pg_dump:
pg_dump.c (r1.494 -> r1.495)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/bin/pg_dump/pg_dump.c?r1=1.494&r2=1.495)
pgsql/src/include/catalog:
catversion.h (r1.469 -> r1.470)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/catversion.h?r1=1.469&r2=1.470)
pg_attribute.h (r1.138 -> r1.139)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_attribute.h?r1=1.138&r2=1.139)
pg_class.h (r1.105 -> r1.106)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_class.h?r1=1.105&r2=1.106)
pg_proc.h (r1.507 -> r1.508)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_proc.h?r1=1.507&r2=1.508)
pgsql/src/test/regress/expected:
opr_sanity.out (r1.81 -> r1.82)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/opr_sanity.out?r1=1.81&r2=1.82)
pgsql/src/test/regress/sql:
opr_sanity.sql (r1.65 -> r1.66)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/opr_sanity.sql?r1=1.65&r2=1.66)

Browse pgsql-committers by date

  From Date Subject
Next Message Simon Riggs 2008-07-16 17:42:59 Re: pgsql: Support "variadic" functions, which can accept a variable number
Previous Message Bruce Momjian 2008-07-16 16:54:08 pgsql: Allow TRUNCATE foo, foo to succeed, per report from Nikhils.