On Mon, 21 Jul 2003, Bruce Momjian wrote:
> Jan Wieck wrote:
> > Bruce Momjian wrote:
> > > Marcus B?rger wrote:
> > >> BM> Marcus, would you check if PHP is using RESET ALL when passing
> > >> BM> persistent connection to new clients? We added that capability a few
> > >> BM> releases ago, specifically for PHP persistent connections, but I don't
> > >> BM> think that ever got into the PHP code.
> > >>
> > >> Unfortunately we don't do so yet. Do i need to check for errors or can i do it
> > >> unconditionally on conenction start? And i'd need to know how to check if it
> > >> is available (like starting with which version).
> > >
> > > It first appeared in PostgreSQL version 7.2. It doesn't generate any
> > > failures. It just resets all SET settting to their defaults, in case
> > > the previous client modified them.
> > >
> >
> > It does generate the usual error if the current transaction block is in
> > ABORT state. So the correct querystring to send would be something like
> >
> > "ROLLBACK; RESET ALL"
>
> Oh, I remember that now as part of the persistent connection code. As I
> remember, we told them to do BEGIN;COMMIT; to clear any open transaction
> state passed to the new client. Is that in there? If not, it has to be
> added too. ROLLBACK will generate an error if you are not in a
> transaction, so it would fill the logs with errors.
Won't that break when we have nested transactions implemented? i.e.
begin;commit; would just open a sub transaction and have no effect on the
outer transaction...