Log Message:
-----------
Fix problems with cached tuple descriptors disappearing while still in use
by creating a reference-count mechanism, similar to what we did a long time
ago for catcache entries.  The back branches have an ugly solution involving
lots of extra copies, but this way is more efficient.  Reference counting is
only applied to tupdescs that are actually in caches --- there seems no need
to use it for tupdescs that are generated in the executor, since they'll go
away during plan shutdown by virtue of being in the per-query memory context.
Neil Conway and Tom Lane

Modified Files:
--------------
    pgsql/src/backend/access/common:
        tupdesc.c (r1.116 -> r1.117)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/common/tupdesc.c.diff?r1=1.116&r2=1.117)
    pgsql/src/backend/access/heap:
        tuptoaster.c (r1.59 -> r1.60)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/tuptoaster.c.diff?r1=1.59&r2=1.60)
    pgsql/src/backend/commands:
        tablecmds.c (r1.184 -> r1.185)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/tablecmds.c.diff?r1=1.184&r2=1.185)
    pgsql/src/backend/executor:
        execJunk.c (r1.52 -> r1.53)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execJunk.c.diff?r1=1.52&r2=1.53)
        execMain.c (r1.270 -> r1.271)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execMain.c.diff?r1=1.270&r2=1.271)
        execQual.c (r1.190 -> r1.191)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execQual.c.diff?r1=1.190&r2=1.191)
        execTuples.c (r1.93 -> r1.94)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execTuples.c.diff?r1=1.93&r2=1.94)
        execUtils.c (r1.134 -> r1.135)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execUtils.c.diff?r1=1.134&r2=1.135)
        nodeBitmapHeapscan.c (r1.11 -> r1.12)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeBitmapHeapscan.c.diff?r1=1.11&r2=1.12)
        nodeFunctionscan.c (r1.38 -> r1.39)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeFunctionscan.c.diff?r1=1.38&r2=1.39)
        nodeHashjoin.c (r1.81 -> r1.82)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeHashjoin.c.diff?r1=1.81&r2=1.82)
        nodeIndexscan.c (r1.113 -> r1.114)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeIndexscan.c.diff?r1=1.113&r2=1.114)
        nodeMergejoin.c (r1.79 -> r1.80)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeMergejoin.c.diff?r1=1.79&r2=1.80)
        nodeSeqscan.c (r1.58 -> r1.59)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeSeqscan.c.diff?r1=1.58&r2=1.59)
        nodeSubplan.c (r1.74 -> r1.75)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeSubplan.c.diff?r1=1.74&r2=1.75)
        nodeSubqueryscan.c (r1.29 -> r1.30)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeSubqueryscan.c.diff?r1=1.29&r2=1.30)
        nodeTidscan.c (r1.48 -> r1.49)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeTidscan.c.diff?r1=1.48&r2=1.49)
    pgsql/src/backend/optimizer/util:
        clauses.c (r1.211 -> r1.212)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/clauses.c.diff?r1=1.211&r2=1.212)
    pgsql/src/backend/parser:
        parse_coerce.c (r2.138 -> r2.139)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_coerce.c.diff?r1=2.138&r2=2.139)
        parse_target.c (r1.142 -> r1.143)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_target.c.diff?r1=1.142&r2=1.143)
    pgsql/src/backend/utils/adt:
        rowtypes.c (r1.15 -> r1.16)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/rowtypes.c.diff?r1=1.15&r2=1.16)
        ruleutils.c (r1.223 -> r1.224)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/ruleutils.c.diff?r1=1.223&r2=1.224)
    pgsql/src/backend/utils/cache:
        relcache.c (r1.241 -> r1.242)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/relcache.c.diff?r1=1.241&r2=1.242)
        typcache.c (r1.18 -> r1.19)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/typcache.c.diff?r1=1.18&r2=1.19)
    pgsql/src/backend/utils/fmgr:
        funcapi.c (r1.29 -> r1.30)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/fmgr/funcapi.c.diff?r1=1.29&r2=1.30)
    pgsql/src/backend/utils/resowner:
        README (r1.3 -> r1.4)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/resowner/README.diff?r1=1.3&r2=1.4)
        resowner.c (r1.19 -> r1.20)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/resowner/resowner.c.diff?r1=1.19&r2=1.20)
    pgsql/src/include/access:
        tupdesc.h (r1.49 -> r1.50)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/tupdesc.h.diff?r1=1.49&r2=1.50)
    pgsql/src/include/executor:
        executor.h (r1.126 -> r1.127)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/executor.h.diff?r1=1.126&r2=1.127)
        tuptable.h (r1.30 -> r1.31)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/tuptable.h.diff?r1=1.30&r2=1.31)
    pgsql/src/include/utils:
        resowner.h (r1.6 -> r1.7)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/resowner.h.diff?r1=1.6&r2=1.7)
        typcache.h (r1.10 -> r1.11)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/typcache.h.diff?r1=1.10&r2=1.11)
    pgsql/src/pl/plperl:
        plperl.c (r1.111 -> r1.112)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/pl/plperl/plperl.c.diff?r1=1.111&r2=1.112)
    pgsql/src/pl/plpgsql/src:
        pl_exec.c (r1.171 -> r1.172)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/pl_exec.c.diff?r1=1.171&r2=1.172)
    pgsql/src/pl/plpython:
        plpython.c (r1.81 -> r1.82)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/plpython.c.diff?r1=1.81&r2=1.82)
    pgsql/src/pl/tcl:
        pltcl.c (r1.104 -> r1.105)
        
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/pl/tcl/pltcl.c.diff?r1=1.104&r2=1.105)

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to