Re: CREATE DATABASE with tablespace fix - Mailing list pgsql-patches

From Tom Lane
Subject Re: CREATE DATABASE with tablespace fix
Date
Msg-id 2161.1092617881@sss.pgh.pa.us
Whole thread Raw
In response to Re: CREATE DATABASE with tablespace fix  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: CREATE DATABASE with tablespace fix
List pgsql-patches
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> I am a little confused why we can't just merge the directories?  The
> relfilenodes would guarantee that the files are unique, right?

Actually not: there is no uniqueness check on relfilenode beyond the
indirect one of the files having to live in the same directory.  In the
tablespace world it will be possible for tables in different tablespaces
to have conflicting relfilenodes.  Admittedly this should be rare and
it's probably good enough to fail only if a collision occurs --- but
it's something that would have to be kept in mind while coding.

Another issue is that since we aren't changing the template's pg_class,
we would end up with a database in which some tables refer to the
database's default tablespace explicitly (reltablespace = its OID) and
some refer to it implicitly (reltablespace = 0).  I'm not sure what the
consequences of that are, but it might not be good.  It would definitely
be a state that you couldn't get into "normally".  (One fairly likely
scenario for failure is if you then try to copy this database and change
the default TS again...)

> Seems we should apply this patch

I think it needs more thought.  I've been busy with other issues and
haven't expended any cycles on the problem myself ...

            regards, tom lane

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: CREATE DATABASE with tablespace fix
Next
From: Bruce Momjian
Date:
Subject: Re: CREATE DATABASE with tablespace fix