Re: RFD: schemas and different kinds of Postgres objects
Fernando Nasser <fnasser@redhat.com>
From: Fernando Nasser <fnasser@redhat.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
Date: 2002-01-22T21:26:33Z
Lists: pgsql-hackers
Tom Lane wrote: > > Fernando Nasser <fnasser@redhat.com> writes: > > Switches set to historical: > > > schema search path = (user's own schema, "any" schema, postgres) > > > [ default creation schema = user's own schema ] > > > The searching in "any" schema (i.e., any owner) will let will find > > things that where defined the way they are today, i.e., possibly > > by several different users. > > No, it won't, because nothing will ever get put into that schema. > (At least not by existing pg_dump scripts, which are the things that > really need to see the historical behavior.) The > default-creation-schema variable has got to point at any/public/ > whatever-we-call it, or you do not have the historical behavior. > You did not understand what I meant by "any". It is not a schema called "any". It is _any_ schema. Example: A creates a table (do not specify the schema) so it gets into the schema named A (as per standard). B refers to the table without qualifying it... In the standard case: look into schema B (=> not found), not in postgres either. ERROR: Inv. relation As the standard requires. In the historical mode: look into schema B (=> not found), look into ANY schema (finds it in A). Works as it is today. Note that I only suggest looking in B first (in the historical case) because this will allow for the coexistence of the current mode with a quasi-compliant use of SQL-Schemas. You only need to change the switch if you want strict compliance. -- Fernando Nasser Red Hat Canada Ltd. E-Mail: fnasser@redhat.com 2323 Yonge Street, Suite #300 Toronto, Ontario M4P 2C9