Re: erroneous restore into pg_catalog schema
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Erik Rijkers <er@xs4all.nl>, Dimitri Fontaine <dimitri@2ndquadrant.fr>, pgsql-hackers@postgresql.org, Kohei KaiGai <kaigai@kaigai.gr.jp>
Date: 2013-01-29T22:37:49Z
Lists: pgsql-hackers
On Tue, Jan 29, 2013 at 2:30 PM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > Robert Haas escribió: >> On Tue, Jan 15, 2013 at 3:22 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> > Robert Haas <robertmhaas@gmail.com> writes: >> >> Or perhaps there is some other way to make sure that the user "really >> >> meant it", like refusing to create in pg_catalog unless the schema >> >> name is given explicitly. I kind of like that idea, actually. >> > >> > That does seem attractive at first glance. Did you have an >> > implementation in mind? The idea that comes to mind for me is to hack >> > namespace.c, either to prevent activeCreationNamespace from getting set >> > to "pg_catalog" in the first place, or to throw error in >> > LookupCreationNamespace and friends. I am not sure though if >> > LookupCreationNamespace et al ever get called in contexts where no >> > immediate object creation is intended (and thus maybe an error wouldn't >> > be appropriate). >> >> As far as I can see, the principle place we'd want to hack would be >> recomputeNamespacePath(), so that activeCreationNamespace never ends >> up pointing to pg_catalog even if that's explicitly listed in >> search_path. The places where we actually work out what schema to use >> are RangeVarGetCreationNamespace() and >> QualifiedNameGetCreationNamespace(), but those don't seem like they'd >> need any adjustment, unless perhaps we wish to whack around the "no >> schema has been selected to create in" error message in some way. > > Robert, are you working on this? I wasn't, but I can, if we agree on it. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Extend and improve use of EXTRA_REGRESS_OPTS.
- 4ae5ee6c9b4d 9.3.0 cited
-
Remove misplaced sanity check from heap_create().
- a475c6036752 9.3.0 cited
-
Silently ignore any nonexistent schemas that are listed in search_path.
- 880bfc3287dd 9.2.0 cited