Re: [HACKERS] Adding support for Default partition in partitioning
От | Sven R. Kunze |
---|---|
Тема | Re: [HACKERS] Adding support for Default partition in partitioning |
Дата | |
Msg-id | 149775c9-5999-ed4d-0e2f-1a73020d7a0c@mail.de обсуждение исходный текст |
Ответ на | Re: [HACKERS] Adding support for Default partition in partitioning (Rahila Syed <rahilasyed90@gmail.com>) |
Ответы |
Re: [HACKERS] Adding support for Default partition in partitioning
|
Список | 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 caseCREATE TABLE p1 PARTITION OF test AS DEFAULT PARTITION BY LIST(a);Thank you,Rahila SyedOn Tue, May 9, 2017 at 1:13 AM, Robert Haas <robertmhaas@gmail.com> wrote:On Thu, May 4, 2017 at 4:40 PM, Sven R. Kunze <srkunze@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
В списке pgsql-hackers по дате отправления: