From: | Amit Langote <amitlangote09(at)gmail(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
Cc: | Michael Paquier <michael(at)paquier(dot)xyz>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, Bruce Momjian <bruce(at)momjian(dot)us>, phil(dot)bayer(at)gmail(dot)com, pgsql-docs(at)lists(dot)postgresql(dot)org, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Postgres 11: Table Partitioning and Primary Keys |
Date: | 2019-07-10 05:30:15 |
Message-ID: | CA+HiwqFCkuze9GK-V5x3KbXQcju-4rEO+19NB_yRYp=Q8D5HuQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs pgsql-hackers |
On Wed, Jul 10, 2019 at 7:53 AM Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> wrote:
> On 2019-Jul-09, Amit Langote wrote:
> > "While defining a primary key and unique constraints on partitioned
> > tables is supported, the set of columns being constrained must include
> > all of the partition key columns. This limitation exists because
> > <productname>PostgreSQL</productname> can ensure uniqueness only
> > across a given partition."
>
> I feel that PKs are mostly a special case of UNIQUE keys, so I tend to
> mention UNIQUE as the central element and let PKs fall out from that.
> That's a mild personal preference only though. Anyway, based on your
> proposed wording, I wrote this:
>
> <listitem>
> <para>
> Unique constraints on partitioned tables (as well as primary keys)
> must constrain all the partition key columns. This limitation exists
> because <productname>PostgreSQL</productname> can only enforce
> uniqueness in each partition individually.
> </para>
> </listitem>
>
> I'm not really sure about the "must constrain" verbiage. Is that really
> comprehensible?
Looks good after replacing "must constraint" by "must include" as
suggested by Tom.
> Also, I chose to place it just above the existing para
> that mentions FK limitations
This placement of the new text sounds good.
> In CREATE TABLE, we already have this:
> <para>
> When establishing a unique constraint for a multi-level partition
> hierarchy, all the columns in the partition key of the target
> partitioned table, as well as those of all its descendant partitioned
> tables, must be included in the constraint definition.
> </para>
>
> which may not be the pinnacle of clarity, but took some time to craft
> and I think is correct. Also it doesn't mention primary keys
> explicitly; maybe we should patch it by adding "(as well as a primary
> key)" right after "a unique constraint". Thoughts?
Works for me.
Thanks,
Amit
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2019-07-10 07:13:07 | Re: Postgres 11: Table Partitioning and Primary Keys |
Previous Message | Tom Lane | 2019-07-09 22:59:59 | Re: Postgres 11: Table Partitioning and Primary Keys |
From | Date | Subject | |
---|---|---|---|
Next Message | Binguo Bao | 2019-07-10 05:35:25 | Re: Optimize partial TOAST decompression |
Previous Message | Alexander Korotkov | 2019-07-10 04:58:26 | Re: SQL/JSON path issues/questions |