Generalize concept of temporary relations to "relation persistence".

Robert Haas <rhaas@postgresql.org>

Commit: 5f7b58fad8f45c69bb67944779dce67e2f481995
Author: Robert Haas <rhaas@postgresql.org>
Date: 2010-12-13T17:34:26Z
Releases: 9.1.0
Generalize concept of temporary relations to "relation persistence".

This commit replaces pg_class.relistemp with pg_class.relpersistence;
and also modifies the RangeVar node type to carry relpersistence rather
than istemp.  It also removes removes rd_istemp from RelationData and
instead performs the correct computation based on relpersistence.

For clarity, we add three new macros: RelationNeedsWAL(),
RelationUsesLocalBuffers(), and RelationUsesTempNamespace(), so that we
can clarify the purpose of each check that previous depended on
rd_istemp.

This is intended as infrastructure for the upcoming unlogged tables
patch, as well as for future possible work on global temporary tables.

Files

PathChange+/−
src/backend/access/gin/ginbtree.c modified +3 −3
src/backend/access/gin/ginfast.c modified +3 −3
src/backend/access/gin/gininsert.c modified +2 −2
src/backend/access/gin/ginutil.c modified +1 −1
src/backend/access/gin/ginvacuum.c modified +2 −2
src/backend/access/gist/gist.c modified +6 −6
src/backend/access/gist/gistvacuum.c modified +1 −1
src/backend/access/heap/heapam.c modified +17 −17
src/backend/access/heap/pruneheap.c modified +1 −1
src/backend/access/heap/rewriteheap.c modified +3 −3
src/backend/access/nbtree/nbtinsert.c modified +3 −3
src/backend/access/nbtree/nbtpage.c modified +5 −5
src/backend/access/nbtree/nbtsort.c modified +6 −6
src/backend/bootstrap/bootparse.y modified +2 −0
src/backend/catalog/catalog.c modified +15 −1
src/backend/catalog/heap.c modified +8 −5
src/backend/catalog/index.c modified +6 −4
src/backend/catalog/namespace.c modified +6 −6
src/backend/catalog/storage.c modified +20 −4
src/backend/catalog/toasting.c modified +2 −1
src/backend/commands/cluster.c modified +3 −2
src/backend/commands/indexcmds.c modified +2 −2
src/backend/commands/sequence.c modified +4 −4
src/backend/commands/tablecmds.c modified +44 −35
src/backend/commands/tablespace.c modified +4 −4
src/backend/commands/vacuumlazy.c modified +5 −6
src/backend/commands/view.c modified +7 −6
src/backend/executor/execMain.c modified +6 −3
src/backend/nodes/copyfuncs.c modified +1 −1
src/backend/nodes/equalfuncs.c modified +1 −1
src/backend/nodes/makefuncs.c modified +2 −1
src/backend/nodes/outfuncs.c modified +1 −1
src/backend/nodes/readfuncs.c modified +1 −1
src/backend/parser/gram.y modified +29 −32
src/backend/parser/parse_utilcmd.c modified +4 −3
src/backend/postmaster/autovacuum.c modified +2 −2
src/backend/storage/buffer/bufmgr.c modified +2 −2
src/backend/utils/adt/dbsize.c modified +19 −9
src/backend/utils/cache/relcache.c modified +44 −27
src/include/catalog/catalog.h modified +1 −1
src/include/catalog/catversion.h modified +1 −1
src/include/catalog/heap.h modified +2 −0
src/include/catalog/pg_class.h modified +9 −6
src/include/catalog/storage.h modified +1 −1
src/include/commands/tablespace.h modified +1 −1
src/include/nodes/primnodes.h modified +1 −1
src/include/utils/relcache.h modified +2 −1
src/include/utils/rel.h modified +23 −2