On Mon, Jan 31, 2011 at 6:07 PM, Simon Riggs <si...@2ndquadrant.com> wrote: > On Mon, 2011-01-31 at 16:24 -0500, Tom Lane wrote: >> Simon Riggs <si...@2ndquadrant.com> writes: >> > On Mon, 2011-01-31 at 14:58 -0500, Tom Lane wrote: >> >> The trouble with ERRCODE_ADMIN_SHUTDOWN is that it might lead a >> >> connection pooler to expect that *all* its connections are going bad, >> >> not just the ones that are connected to a specific database. I think >> >> this is a bad decision. Programs that are interested in testing for this >> >> case at all are likely to need to be worried about that distinction. >> >> > That's a reasonable argument. >> >> > My objection to a new code is only to one that is so specific that >> > people have to program for ERRCODE_BLUE_MOON_ON_A_LEAP_YEAR. >> >> What's wrong with ERRCODE_DATABASE_DROPPED, or something like that? >> >> > Can we invent a new "catch-all" that might be used here? Something that >> > means "unknown operational error, not sure what to do". >> >> Because that's not the situation here. We know exactly what a pooler >> should do. It might be an infrequent case, but obscurantism isn't going >> to help anyone. > > OK, that makes sense to me. > > I would make ERRCODE_DATABASE_DROPPED an Invalid Authorization error, > rather than a Transaction Rollback code. So sqlstate 28P02 > > The sensible handling of such an error is not to retry, or at least to > switch to an alternate if one is available. > > Ready to commit if no objection.
ISTM it should still be in class 40. There's nothing wrong with the user's authorization; we've just decided to roll back the transaction for our own purposes. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers