> > We discussed using 'ROLLBACK' before passing a connection to a new user,
> > but the problem was that ROLLBACK with no open transaction causes a
> > server log error message. We discussed adding 'ROLLBACK SILENT' to fix
> > this, but I believe a better, more portable solution is a simple "BEGIN
> > WORK;ROLLBACK". This will do nothing if there is no open transaction,
> > and will ROLLBACK any open transaction. I propose this be sent by PHP
> > as the first query when passing persistent connections.
>
> was there a conclusion made yet (that i missed somehow) on
> this subject? i'd like to implement *something* in the PHP
> core for this soon.
One person objected that BEGIN;ROLLBACK will throw an error to the log
file if there was an open transaction, but I think that is fine as this
is a rare occurance, and an argument can be made that leaving an open
transaction on session close in a pooled connection environment should
throw some kind of error anyway. Also, this fix will work for all
versions of PostgreSQL, so it can be implemented right away with no
backend changes or version checks.
We still need a global RESET, but I don't think that can be done until
7.2. I will add that to our project TODO list.
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026