Re: Adding support for Default partition in partitioning

From: "Sven R(dot) Kunze" <srkunze(at)mail(dot)de>
To: Rahila Syed <rahilasyed90(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: amul sul <sulamul(at)gmail(dot)com>, Keith Fiske <keith(at)omniti(dot)com>, Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>, Rushabh Lathia <rushabh(dot)lathia(at)gmail(dot)com>, David Steele <david(at)pgmasters(dot)net>, Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Adding support for Default partition in partitioning
Date: 2017-05-10 14:59:58
Message-ID: 149775c9-5999-ed4d-0e2f-1a73020d7a0c@mail.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 09.05.2017 09:19, Rahila Syed wrote:
> +1 for AS DEFAULT syntax if it helps in improving readability
> specially in following case
>
> CREATE TABLE p1 PARTITION OF test AS DEFAULT PARTITION BY LIST(a);
>
> Thank you,
> Rahila Syed
>
> On Tue, May 9, 2017 at 1:13 AM, Robert Haas <robertmhaas(at)gmail(dot)com
> <mailto:robertmhaas(at)gmail(dot)com>> wrote:
>
> On Thu, May 4, 2017 at 4:40 PM, Sven R. Kunze <srkunze(at)mail(dot)de
> <mailto:srkunze(at)mail(dot)de>> wrote:
> > It yields
> >
> > CREATE TABLE p1 PARTITION OF test DEFAULT PARTITION BY LIST(b);
> >
> > This reads to me like "DEFAULT PARTITION".
> >
> > I can imagine a lot of confusion when those queries are
> encountered in the
> > wild. I know this thread is about creating a default partition
> but I were to
> > propose a minor change in the following direction, I think
> confusion would
> > be greatly avoided:
> >
> > CREATE TABLE p1 PARTITION OF test AS DEFAULT PARTITIONED BY LIST(b);
> >
> > I know it's a bit longer but I think those 4 characters might serve
> > readability in the long term. It was especially confusing to see
> PARTITION
> > in two positions serving two different functions.
>
> Well, we certainly can't make that change just for default partitions.
> I mean, that would be non-orthogonal, right? You can't say that the
> way to subpartition is to write "PARTITION BY strategy" when the table
> unpartitioned or is a non-default partition but "PARTITIONED BY
> strategy" when it is a default partition. That would certainly not be
> a good way of confusing users less, and would probably result in a
> variety of special cases in places like ruleutils.c or pg_dump, plus
> some weasel-wording in the documentation. We COULD do a general
> change from "CREATE TABLE table_name PARTITION BY strategy" to "CREATE
> TABLE table_name PARTITIONED BY strategy". I don't have any
> particular arguments against that except that the current syntax is
> more like Oracle, which might count for something, and maybe the fact
> that we're a month after feature freeze. Still, if we want to change
> that, now would be the time; but I favor leaving it alone.
>

You are definitely right. Changing it here would require to change it
everywhere AND thus to loose syntax parity with Oracle.

I am not in a position to judge this properly whether this would be a
huge problem. Personally, I don't have an issue with that. But don't
count me as most important opion on this.

>
> So I guess I'm still in favor of the CREATE TABLE p1 PARTITION OF test
> DEFAULT syntax, but if it ends up being AS DEFAULT instead, I can live
> with that.
>

Is to make it optional an option?

Sven

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Aleksander Alekseev 2017-05-10 15:30:04 Re: WIP Patch: Precalculate stable functions, infrastructure v1
Previous Message Chapman Flack 2017-05-10 14:34:58 Re: idea: custom log_line_prefix components besides application_name