Re: Native partitioning tablespace inheritance

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: "Jonathan S(dot) Katz" <jonathan(dot)katz(at)excoventures(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Christophe Pettus <xof(at)thebuild(dot)com>, David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>, Keith Fiske <keith(dot)fiske(at)crunchydata(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Native partitioning tablespace inheritance
Date: 2018-04-12 23:08:13
Message-ID: 20180412230813.GA1552@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Apr 12, 2018 at 03:39:19PM -0400, Robert Haas wrote:
> Well I don't object to updating the documentation, but just because
> something isn't what the user expects doesn't make it a bug. Users
> can have arbitrary expectations.

Yes, I agree that this is not a bug, and should not be categorized as
such. Mentioning in the documentation explicitely that tablespaces are
not inherited may be worth it.

> On a practical level, what I think users *should* expect is that table
> partitioning behaves like table inheritance except in cases where
> we've gotten around to doing something different. Of course, the
> behavior of table partitioning here is no worse than what table
> inheritance does. The behavior doesn't cascade from parent to child
> there, either. If we start classifying as a bug every area where
> table partitioning works like table inheritance but someone can think
> of something better, we've probably got about 50 bugs, some of which
> will require years of work to fix.

+1.

> Unless done rather carefully, it's also going to break
> dump-and-restore and, I think, likely also pg_upgrade. Suppose that
> in the original cluster TABLESPACE was set on the parent but not on
> the children. The children are therefore dumped without a TABLESPACE
> clause. On the old cluster that would have worked as intended, but
> with this change the children will end up in the parent's tablespace
> instead of the database default tablespace.

I have not looked at the problem closely, but now pg_dump relies heavily
on default_tablespace to make sure that a table is using the correctly
tablespace and does not append a TABLESPACE clause to CREATE TABLE so as
pg_restore can work with --no-tablespaces. So we'll surely get some
regressions and corner cases if not careful.
--
Michael

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2018-04-13 00:26:33 MinIndexTupleSize seems slightly wrong
Previous Message Tom Lane 2018-04-12 22:46:27 Re: Instability in partition_prune test?