Just to keep you guys posted, here is the work-in-progress 2PC patch.
I've done some cleanup, but I still want to do some more.
Tom, please let me know if you want to hack on it, if that's the case
I'll stop my cleanup and start to work on supporting the things that
need further coding, which are AFAICS MultiXactId, large objects and
notifies.
Regarding cleanup I want to do the following:
- remove the gidStash from xact.c, make twophase.c deal with it
internally
- rework the iterator functions for procarray.c (previously known as sinval.c)
- rework the callback infrastructure
I haven't kept a detailed TODO list, I guess it's time to start.
Note that I haven't updated the regression test expected file.
Moreover, the current test exposes a bug that I think it's in sinval
management, not sure where.
This patch creates the following new files:
doc/src/sgml/ref/commit_prepared.sgml
doc/src/sgml/ref/prepare_transaction.sgml
doc/src/sgml/ref/rollback_prepared.sgml
src/backend/access/transam/twophase.c
src/backend/access/transam/twophase_rmgr.c
src/include/access/twophase.h
src/include/access/twophase_rmgr.h
src/include/storage/lockrmgr.h
src/test/regress/expected/prepared_xacts.out
src/test/regress/sql/prepared_xacts.sql
Thanks,
--
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
"Uno puede defenderse de los ataques; contra los elogios se esta indefenso"