OSDN Git Service

Invent ResourceOwner mechanism as per my recent proposal, and use it to
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 17 Jul 2004 03:32:14 +0000 (03:32 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 17 Jul 2004 03:32:14 +0000 (03:32 +0000)
commitfe548629c50b753e96515ba2cfd8a85e8fba10de
treee80b54f71cb7868db3f9f9c97bccf4c48859951a
parentf4c069ca8fc80640bd1bff510697371ffaf45267
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.
41 files changed:
contrib/userlock/user_locks.c
src/backend/access/gist/gistscan.c
src/backend/access/hash/hashscan.c
src/backend/access/nbtree/nbtree.c
src/backend/access/rtree/rtscan.c
src/backend/access/transam/xact.c
src/backend/bootstrap/bootparse.y
src/backend/bootstrap/bootstrap.c
src/backend/catalog/pg_proc.c
src/backend/commands/portalcmds.c
src/backend/storage/buffer/bufmgr.c
src/backend/storage/buffer/localbuf.c
src/backend/storage/lmgr/lock.c
src/backend/storage/lmgr/proc.c
src/backend/storage/smgr/smgr.c
src/backend/tcop/postgres.c
src/backend/tcop/pquery.c
src/backend/utils/Makefile
src/backend/utils/cache/catcache.c
src/backend/utils/cache/relcache.c
src/backend/utils/mmgr/portalmem.c
src/backend/utils/resowner/Makefile [new file with mode: 0644]
src/backend/utils/resowner/README [new file with mode: 0644]
src/backend/utils/resowner/resowner.c [new file with mode: 0644]
src/include/access/gistscan.h
src/include/access/hash.h
src/include/access/nbtree.h
src/include/access/rtree.h
src/include/access/xact.h
src/include/commands/portalcmds.h
src/include/storage/bufmgr.h
src/include/storage/lock.h
src/include/storage/proc.h
src/include/storage/smgr.h
src/include/utils/catcache.h
src/include/utils/portal.h
src/include/utils/rel.h
src/include/utils/relcache.h
src/include/utils/resowner.h [new file with mode: 0644]
src/test/regress/expected/transactions.out
src/test/regress/sql/transactions.sql