pgsql: Wrap calls to SearchSysCache and related functions using macros. - Mailing list pgsql-committers

From rhaas@postgresql.org (Robert Haas)
Subject pgsql: Wrap calls to SearchSysCache and related functions using macros.
Date
Msg-id 20100214184219.6315C7541C5@cvs.postgresql.org
Whole thread Raw
List pgsql-committers
Log Message:
-----------
Wrap calls to SearchSysCache and related functions using macros.

The purpose of this change is to eliminate the need for every caller
of SearchSysCache, SearchSysCacheCopy, SearchSysCacheExists,
GetSysCacheOid, and SearchSysCacheList to know the maximum number
of allowable keys for a syscache entry (currently 4).  This will
make it far easier to increase the maximum number of keys in a
future release should we choose to do so, and it makes the code
shorter, too.

Design and review by Tom Lane.

Modified Files:
--------------
    pgsql/contrib/dblink:
        dblink.c (r1.88 -> r1.89)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/dblink/dblink.c?r1=1.88&r2=1.89)
    pgsql/src/backend/access/common:
        tupdesc.c (r1.132 -> r1.133)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/common/tupdesc.c?r1=1.132&r2=1.133)
    pgsql/src/backend/access/heap:
        heapam.c (r1.286 -> r1.287)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/heapam.c?r1=1.286&r2=1.287)
    pgsql/src/backend/access/transam:
        varsup.c (r1.87 -> r1.88)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/varsup.c?r1=1.87&r2=1.88)
    pgsql/src/backend/catalog:
        aclchk.c (r1.161 -> r1.162)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/aclchk.c?r1=1.161&r2=1.162)
        dependency.c (r1.94 -> r1.95)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/dependency.c?r1=1.94&r2=1.95)
        heap.c (r1.370 -> r1.371)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/heap.c?r1=1.370&r2=1.371)
        index.c (r1.335 -> r1.336)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/index.c?r1=1.335&r2=1.336)
        namespace.c (r1.122 -> r1.123)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/namespace.c?r1=1.122&r2=1.123)
        pg_aggregate.c (r1.104 -> r1.105)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_aggregate.c?r1=1.104&r2=1.105)
        pg_constraint.c (r1.51 -> r1.52)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_constraint.c?r1=1.51&r2=1.52)
        pg_conversion.c (r1.49 -> r1.50)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_conversion.c?r1=1.49&r2=1.50)
        pg_inherits.c (r1.6 -> r1.7)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_inherits.c?r1=1.6&r2=1.7)
        pg_namespace.c (r1.22 -> r1.23)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_namespace.c?r1=1.22&r2=1.23)
        pg_operator.c (r1.110 -> r1.111)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_operator.c?r1=1.110&r2=1.111)
        pg_proc.c (r1.170 -> r1.171)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_proc.c?r1=1.170&r2=1.171)
        pg_shdepend.c (r1.38 -> r1.39)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_shdepend.c?r1=1.38&r2=1.39)
        pg_type.c (r1.131 -> r1.132)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_type.c?r1=1.131&r2=1.132)
        toasting.c (r1.30 -> r1.31)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/toasting.c?r1=1.30&r2=1.31)
    pgsql/src/backend/commands:
        aggregatecmds.c (r1.51 -> r1.52)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/aggregatecmds.c?r1=1.51&r2=1.52)
        analyze.c (r1.150 -> r1.151)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/analyze.c?r1=1.150&r2=1.151)
        cluster.c (r1.200 -> r1.201)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/cluster.c?r1=1.200&r2=1.201)
        comment.c (r1.112 -> r1.113)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/comment.c?r1=1.112&r2=1.113)
        conversioncmds.c (r1.40 -> r1.41)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/conversioncmds.c?r1=1.40&r2=1.41)
        dbcommands.c (r1.233 -> r1.234)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/dbcommands.c?r1=1.233&r2=1.234)
        foreigncmds.c (r1.10 -> r1.11)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/foreigncmds.c?r1=1.10&r2=1.11)
        functioncmds.c (r1.115 -> r1.116)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/functioncmds.c?r1=1.115&r2=1.116)
        indexcmds.c (r1.192 -> r1.193)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/indexcmds.c?r1=1.192&r2=1.193)
        opclasscmds.c (r1.65 -> r1.66)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/opclasscmds.c?r1=1.65&r2=1.66)
        operatorcmds.c (r1.44 -> r1.45)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/operatorcmds.c?r1=1.44&r2=1.45)
        proclang.c (r1.88 -> r1.89)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/proclang.c?r1=1.88&r2=1.89)
        schemacmds.c (r1.55 -> r1.56)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/schemacmds.c?r1=1.55&r2=1.56)
        sequence.c (r1.165 -> r1.166)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/sequence.c?r1=1.165&r2=1.166)
        tablecmds.c (r1.325 -> r1.326)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/tablecmds.c?r1=1.325&r2=1.326)
        trigger.c (r1.260 -> r1.261)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/trigger.c?r1=1.260&r2=1.261)
        tsearchcmds.c (r1.19 -> r1.20)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/tsearchcmds.c?r1=1.19&r2=1.20)
        typecmds.c (r1.146 -> r1.147)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/typecmds.c?r1=1.146&r2=1.147)
        user.c (r1.191 -> r1.192)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/user.c?r1=1.191&r2=1.192)
        vacuum.c (r1.407 -> r1.408)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/vacuum.c?r1=1.407&r2=1.408)
        variable.c (r1.132 -> r1.133)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/variable.c?r1=1.132&r2=1.133)
    pgsql/src/backend/executor:
        execAmi.c (r1.107 -> r1.108)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execAmi.c?r1=1.107&r2=1.108)
        functions.c (r1.140 -> r1.141)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/functions.c?r1=1.140&r2=1.141)
        nodeAgg.c (r1.173 -> r1.174)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeAgg.c?r1=1.173&r2=1.174)
        nodeHash.c (r1.127 -> r1.128)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeHash.c?r1=1.127&r2=1.128)
        nodeWindowAgg.c (r1.10 -> r1.11)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeWindowAgg.c?r1=1.10&r2=1.11)
        spi.c (r1.213 -> r1.214)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/spi.c?r1=1.213&r2=1.214)
    pgsql/src/backend/foreign:
        foreign.c (r1.7 -> r1.8)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/foreign/foreign.c?r1=1.7&r2=1.8)
    pgsql/src/backend/libpq:
        crypt.c (r1.79 -> r1.80)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/libpq/crypt.c?r1=1.79&r2=1.80)
    pgsql/src/backend/optimizer/plan:
        planagg.c (r1.50 -> r1.51)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/planagg.c?r1=1.50&r2=1.51)
        setrefs.c (r1.158 -> r1.159)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/setrefs.c?r1=1.158&r2=1.159)
        subselect.c (r1.159 -> r1.160)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/subselect.c?r1=1.159&r2=1.160)
    pgsql/src/backend/optimizer/util:
        clauses.c (r1.284 -> r1.285)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/clauses.c?r1=1.284&r2=1.285)
        predtest.c (r1.30 -> r1.31)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/predtest.c?r1=1.30&r2=1.31)
    pgsql/src/backend/parser:
        parse_coerce.c (r2.179 -> r2.180)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_coerce.c?r1=2.179&r2=2.180)
        parse_func.c (r1.220 -> r1.221)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_func.c?r1=1.220&r2=1.221)
        parse_node.c (r1.107 -> r1.108)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_node.c?r1=1.107&r2=1.108)
        parse_oper.c (r1.111 -> r1.112)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_oper.c?r1=1.111&r2=1.112)
        parse_relation.c (r1.148 -> r1.149)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_relation.c?r1=1.148&r2=1.149)
        parse_type.c (r1.105 -> r1.106)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_type.c?r1=1.105&r2=1.106)
        parse_utilcmd.c (r2.38 -> r2.39)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_utilcmd.c?r1=2.38&r2=2.39)
    pgsql/src/backend/postmaster:
        autovacuum.c (r1.107 -> r1.108)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/postmaster/autovacuum.c?r1=1.107&r2=1.108)
    pgsql/src/backend/rewrite:
        rewriteDefine.c (r1.140 -> r1.141)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/rewrite/rewriteDefine.c?r1=1.140&r2=1.141)
        rewriteRemove.c (r1.79 -> r1.80)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/rewrite/rewriteRemove.c?r1=1.79&r2=1.80)
        rewriteSupport.c (r1.68 -> r1.69)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/rewrite/rewriteSupport.c?r1=1.68&r2=1.69)
    pgsql/src/backend/tcop:
        fastpath.c (r1.102 -> r1.103)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/tcop/fastpath.c?r1=1.102&r2=1.103)
        utility.c (r1.331 -> r1.332)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/tcop/utility.c?r1=1.331&r2=1.332)
    pgsql/src/backend/utils/adt:
        acl.c (r1.155 -> r1.156)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/acl.c?r1=1.155&r2=1.156)
        dbsize.c (r1.29 -> r1.30)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/dbsize.c?r1=1.29&r2=1.30)
        enum.c (r1.9 -> r1.10)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/enum.c?r1=1.9&r2=1.10)
        format_type.c (r1.52 -> r1.53)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/format_type.c?r1=1.52&r2=1.53)
        regproc.c (r1.112 -> r1.113)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/regproc.c?r1=1.112&r2=1.113)
        ri_triggers.c (r1.117 -> r1.118)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/ri_triggers.c?r1=1.117&r2=1.118)
        ruleutils.c (r1.321 -> r1.322)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/ruleutils.c?r1=1.321&r2=1.322)
        selfuncs.c (r1.268 -> r1.269)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/selfuncs.c?r1=1.268&r2=1.269)
        xml.c (r1.95 -> r1.96)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/xml.c?r1=1.95&r2=1.96)
    pgsql/src/backend/utils/cache:
        attoptcache.c (r1.1 -> r1.2)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/attoptcache.c?r1=1.1&r2=1.2)
        catcache.c (r1.150 -> r1.151)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/catcache.c?r1=1.150&r2=1.151)
        inval.c (r1.96 -> r1.97)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/inval.c?r1=1.96&r2=1.97)
        lsyscache.c (r1.166 -> r1.167)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/lsyscache.c?r1=1.166&r2=1.167)
        relcache.c (r1.305 -> r1.306)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/relcache.c?r1=1.305&r2=1.306)
        spccache.c (r1.4 -> r1.5)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/spccache.c?r1=1.4&r2=1.5)
        syscache.c (r1.125 -> r1.126)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/syscache.c?r1=1.125&r2=1.126)
        ts_cache.c (r1.11 -> r1.12)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/ts_cache.c?r1=1.11&r2=1.12)
        typcache.c (r1.31 -> r1.32)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/typcache.c?r1=1.31&r2=1.32)
    pgsql/src/backend/utils/fmgr:
        fmgr.c (r1.129 -> r1.130)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/fmgr/fmgr.c?r1=1.129&r2=1.130)
        funcapi.c (r1.47 -> r1.48)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/fmgr/funcapi.c?r1=1.47&r2=1.48)
    pgsql/src/backend/utils/init:
        miscinit.c (r1.181 -> r1.182)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/init/miscinit.c?r1=1.181&r2=1.182)
        postinit.c (r1.202 -> r1.203)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/init/postinit.c?r1=1.202&r2=1.203)
    pgsql/src/backend/utils/mb:
        mbutils.c (r1.92 -> r1.93)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/mbutils.c?r1=1.92&r2=1.93)
    pgsql/src/backend/utils/misc:
        superuser.c (r1.40 -> r1.41)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/misc/superuser.c?r1=1.40&r2=1.41)
    pgsql/src/include/utils:
        catcache.h (r1.71 -> r1.72)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/catcache.h?r1=1.71&r2=1.72)
        syscache.h (r1.78 -> r1.79)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/syscache.h?r1=1.78&r2=1.79)
    pgsql/src/pl/plperl:
        plperl.c (r1.165 -> r1.166)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plperl/plperl.c?r1=1.165&r2=1.166)
    pgsql/src/pl/plpgsql/src:
        pl_comp.c (r1.148 -> r1.149)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/pl_comp.c?r1=1.148&r2=1.149)
        pl_handler.c (r1.49 -> r1.50)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/pl_handler.c?r1=1.49&r2=1.50)
    pgsql/src/pl/plpython:
        plpython.c (r1.136 -> r1.137)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/plpython.c?r1=1.136&r2=1.137)
    pgsql/src/pl/tcl:
        pltcl.c (r1.130 -> r1.131)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/tcl/pltcl.c?r1=1.130&r2=1.131)

pgsql-committers by date:

Previous
From: stark@postgresql.org (Greg Stark)
Date:
Subject: pgsql: Make CREATE DATABASE safe against losing whole files by fsyncing
Next
From: stark@postgresql.org (Greg Stark)
Date:
Subject: pgsql: Speed up CREATE DATABASE by deferring the fsyncs until after