Re: Question on creating keys on partitioned tables - Mailing list pgsql-general

From Siddharth Jain
Subject Re: Question on creating keys on partitioned tables
Date
Msg-id CAPqV3pRPDM06rGQxaWWeY7XmwdtLOqOzizqo-DRkJWErX8dy1g@mail.gmail.com
Whole thread Raw
In response to Re: Question on creating keys on partitioned tables  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Question on creating keys on partitioned tables  (Laurenz Albe <laurenz.albe@cybertec.at>)
List pgsql-general


On Fri, Mar 31, 2023 at 9:07 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Siddharth Jain <siddhsql@gmail.com> writes:
> I think the two are equivalent. If not, could you please explain why?

Well, they're formally equivalent if you require there to be only one
X value per partition (ie, PARTITION BY LIST with only one listed value
per partition); if there's more, they're not the same thing.

Yes. This is what I have. I think I understand now. Is following correct?

when a PK is created on (X,Y) on the parent table what happens internally is that the command is run individually on each of the child tables. nothing more. nothing less.

 

Neither one guarantees that Y is globally unique.  We have no mechanism
for enforcing uniqueness across partitions except for partition key
columns.

                        regards, tom lane

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Question on creating keys on partitioned tables
Next
From: Bryn Llewellyn
Date:
Subject: My tests show that a WITH HOLD cursor has subtly different semantics from a WITHOUT HOLD cursor