Re: CREATE SCHEMA IF NOT EXISTS - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: CREATE SCHEMA IF NOT EXISTS
Date
Msg-id 1349205863-sup-2245@alvh.no-ip.org
Whole thread Raw
In response to Re: CREATE SCHEMA IF NOT EXISTS  ("David E. Wheeler" <david@justatheory.com>)
Responses Re: CREATE SCHEMA IF NOT EXISTS  ("David E. Wheeler" <david@justatheory.com>)
Re: CREATE SCHEMA IF NOT EXISTS  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Excerpts from David E. Wheeler's message of mar oct 02 16:16:37 -0300 2012:
> On Oct 2, 2012, at 12:08 PM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
>
> > create schema if not exists foo create table first (a int);
> > create schema if not exists foo create table second (a int);
> >
> >
> > As far as I can see, with the patch as it currently stands, you would
> > end up with only table "first" in the schema, which seems very
> > surprising to me.
>
> Yeah, I think the second should die. CINE should only work if there are no other objects created as part of the
statement,IMHO. 

Well, if that's the rationale then you end up with no schema foo at all
(i.e. both die), which seems even more surprising (though I admit it has
the advantage of being a simple rule to document.)

How about call this for precedent:

mkdir -p /tmp/foo/bar
mkdir -p /tmp/foo/baz

In this case you end up with directory "foo" and at least two subdirs in
it, bar and baz.  This works even if /tmp/foo existed previously and
even if there was some other stuff in it.

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services



pgsql-hackers by date:

Previous
From: "David E. Wheeler"
Date:
Subject: Re: CREATE SCHEMA IF NOT EXISTS
Next
From: "David E. Wheeler"
Date:
Subject: Re: CREATE SCHEMA IF NOT EXISTS