Invent ResourceOwner mechanism as per my recent proposal, and use it to

Tom Lane <tgl@sss.pgh.pa.us>

Commit: fe548629c50b753e96515ba2cfd8a85e8fba10de
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2004-07-17T03:32:14Z
Releases: 8.0.0
Invent ResourceOwner mechanism as per my recent proposal, and use it to
keep track of portal-related resources separately from transaction-related
resources.  This allows cursors to work in a somewhat sane fashion with
nested transactions.  For now, cursor behavior is non-subtransactional,
that is a cursor's state does not roll back if you abort a subtransaction
that fetched from the cursor.  We might want to change that later.

Files

PathChange+/−
contrib/userlock/user_locks.c modified +1 −1
src/backend/access/gist/gistscan.c modified +10 −33
src/backend/access/hash/hashscan.c modified +10 −33
src/backend/access/nbtree/nbtree.c modified +1 −11
src/backend/access/rtree/rtscan.c modified +10 −33
src/backend/access/transam/xact.c modified +223 −157
src/backend/bootstrap/bootparse.y modified +7 −2
src/backend/bootstrap/bootstrap.c modified +1 −49
src/backend/catalog/pg_proc.c modified +2 −2
src/backend/commands/portalcmds.c modified +26 −16
src/backend/storage/buffer/bufmgr.c modified +119 −134
src/backend/storage/buffer/localbuf.c modified +7 −1
src/backend/storage/lmgr/lock.c modified +24 −29
src/backend/storage/lmgr/proc.c modified +78 −32
src/backend/storage/smgr/smgr.c modified +70 −75
src/backend/tcop/postgres.c modified +7 −1
src/backend/tcop/pquery.c modified +45 −26
src/backend/utils/cache/catcache.c modified +39 −193
src/backend/utils/cache/relcache.c modified +56 −151
src/backend/utils/Makefile modified +2 −2
src/backend/utils/mmgr/portalmem.c modified +142 −49
src/backend/utils/resowner/Makefile added +30 −0
src/backend/utils/resowner/README added +74 −0
src/backend/utils/resowner/resowner.c added +840 −0
src/include/access/gistscan.h modified +2 −3
src/include/access/hash.h modified +2 −3
src/include/access/nbtree.h modified +1 −3
src/include/access/rtree.h modified +2 −3
src/include/access/xact.h modified +3 −56
src/include/commands/portalcmds.h modified +2 −2
src/include/storage/bufmgr.h modified +2 −28
src/include/storage/lock.h modified +2 −10
src/include/storage/proc.h modified +4 −5
src/include/storage/smgr.h modified +1 −2
src/include/utils/catcache.h modified +1 −9
src/include/utils/portal.h modified +24 −8
src/include/utils/relcache.h modified +1 −3
src/include/utils/rel.h modified +5 −26
src/include/utils/resowner.h added +121 −0
src/test/regress/expected/transactions.out modified +66 −0
src/test/regress/sql/transactions.sql modified +22 −0