pgsql: Fix problems with cached tuple descriptors disappearing while

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix problems with cached tuple descriptors disappearing while
Date: 2006-06-16 18:42:24
Message-ID: 20060616184224.400B59FA60C@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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)

Browse pgsql-committers by date

  From Date Subject
Next Message Bruce Momjian 2006-06-16 18:48:42 pgsql: Add: > * Consider shrinking expired tuples to just their headers
Previous Message Bruce Momjian 2006-06-16 18:38:39 pgsql: Add URL to: * Auto-fill the free space map by scanning the