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 <robertmh...@gmail.com <mailto:robertmh...@gmail.com>> wrote:

    On Thu, May 4, 2017 at 4:40 PM, Sven R. Kunze <srku...@mail.de
    <mailto:srku...@mail.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

Reply via email to