Re: Prepared statements fail after schema changes with surprising error
От | Robert Haas |
---|---|
Тема | Re: Prepared statements fail after schema changes with surprising error |
Дата | |
Msg-id | CA+TgmoaYSW0gGi0Y6rM13p2DBWRjQjHSrtUNbBF2v7H-Tor8AQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Prepared statements fail after schema changes with surprising error (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Prepared statements fail after schema changes with surprising error
|
Список | pgsql-hackers |
On Tue, Jan 22, 2013 at 2:17 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Peter van Hardenberg <pvh@pvh.ca> writes: >> Okay - I've narrowed it down to an interaction with schema recreation. >> Here's a minimal test-case I created by paring back the restore from the >> pg_restore output until I only had the essence remaining: > > Hm ... I'm too tired to trace through the code to prove this theory, but > I think what's happening is that this bit: > >> DROP SCHEMA public; >> CREATE SCHEMA public; > > changes the OID of schema public, whereas the search_path that's cached > for the cached plan is cached in terms of OIDs. So while there is a > table named public.z1 at the end of the sequence, it's not in any schema > found in the cached search path. > > We could possibly fix that by making the path be cached as textual names > not OIDs, but then people would complain (rightly, I think) that > renaming a schema caused unexpected behavior. What sort of unexpected behavior? I mean, search_path in its original form is stored as text, anyway. So if the unexpected behavior is merely that they're going to be referencing a different schema, that's going to happen anyway, as soon as they reconnect. I'm not sure there's any logic in trying to postpone the inevitable. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: