Re: erroneous restore into pg_catalog schema

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@2ndquadrant.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Heikki Linnakangas <hlinnakangas@vmware.com>, Alvaro Herrera <alvherre@2ndquadrant.com>, Erik Rijkers <er@xs4all.nl>, Dimitri Fontaine <dimitri@2ndquadrant.fr>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Kohei KaiGai <kaigai@kaigai.gr.jp>
Date: 2013-05-13T18:48:52Z
Lists: pgsql-hackers
Andres Freund <andres@2ndquadrant.com> writes:
> On 2013-05-13 14:35:47 -0400, Tom Lane wrote:
>> That is, in fact, exactly what we want to do and must do during initdb.
>> If you change anything about this code you'll break the way the
>> post-bootstrap initdb steps assign OIDs.

> Well, then we should use some other way to discern from those both
> cases. If you currently execute CREATE TABLE or something else in
> --single user mode the database cannot safely be pg_upgraded anymore
> since the oids might already be used in a freshly initdb'ed cluster in
> the new version.

[ shrug... ]  In the list of ways you can break your system in --single
mode, that one has got to be exceedingly far down the list.

> DROPing and recreating a new index in --single mode isn't that
> uncommon...

Surely you'd just REINDEX it instead.  Moreover, if it isn't a system
index already, why are you doing this in --single mode at all?

			regards, tom lane


Commits

  1. Extend and improve use of EXTRA_REGRESS_OPTS.

  2. Remove misplaced sanity check from heap_create().

  3. Silently ignore any nonexistent schemas that are listed in search_path.