On Thu, Apr 29, 2004 at 10:31:07PM -0400, Bruce Momjian wrote:
> Alvaro Herrera wrote:
> > > > Yeah. We agreed in principle awhile back to "fix" this on the backend
> > > > side by postponing the actual transaction start until the first command
> > > > after BEGIN. I looked at this just before 7.4 feature freeze, but
> > > > decided it wasn't quite trivial and I hadn't time to make it happen.
> > > > No one's gone back to work on it during the 7.5 cycle either.
> > > >
> > > > Right now I'm not wanting to touch that code since both Alvaro and the
> > > > 2PC guy have open patches against it...
> >
> > Actually, my patch is waiting for you to review it ;-) On the other
> > hand, since I'm already touching that code, maybe I can include it in my
> > patch. Or would you prefer to keep those things separate?
>
> Alvaro, can I ask what is left?
Several things. I think I wrote them along with my previous patch. The
visibility rules and the pg_clog protocol are what comes to mind
immediately. This is the difficult part.
> I know you have pg_subtrans, but what plans do you have to abort
> subtransactions and bring the system back to the state before the
> subtransaction started?
Some of those things are already in place. For example cursors are
closed/dropped, file deletions (DROP TABLE) no longer take place, file
creation is reverted, and the server is in a known state. Some things
are missing: how to deal with deferred triggers, prepared statements,
locks, on-commit actions.
--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Vivir y dejar de vivir son soluciones imaginarias.
La existencia está en otra parte" (Andre Breton)