pgsql: Fix problems with cached tuple descriptors disappearing while
От | tgl@postgresql.org (Tom Lane) |
---|---|
Тема | pgsql: Fix problems with cached tuple descriptors disappearing while |
Дата | |
Msg-id | 20060616184224.400B59FA60C@postgresql.org обсуждение исходный текст |
Список | 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)
В списке pgsql-committers по дате отправления:
Предыдущее
От: momjian@postgresql.org (Bruce Momjian)Дата:
Сообщение: pgsql: Add URL to: * Auto-fill the free space map by scanning the
Следующее
От: momjian@postgresql.org (Bruce Momjian)Дата:
Сообщение: pgsql: Add: > * Consider shrinking expired tuples to just their headers