On 2020-Sep-29, Tom Lane wrote:
> Indeed. However, this complaint shows that the error message is not clear
> enough. I propose changing it to
>
> ERROR: unique constraint on partitioned table must be a superset of the partitioning columns
>
> or perhaps
>
> ERROR: unique constraint on partitioned table must include all partitioning columns
Either of those work for me. How common is the word "superset" in
English? We don't seem seem to use it either in error messages, though
it does occur in docs.
> > There's mention in [1] section 5.10.2.3. "Unique constraints on
> > partitioned tables must include all the partition key columns. This
> > limitation exists because PostgreSQL can only enforce uniqueness in
> > each partition individually.". That text likely should also mention
> > PRIMARY KEY constraints. That probably should be changed
>
> Meh. If you've read that bit you probably already understand that
> pkeys are unique constraints. I think the problem is with the error
> text not the docs.
Maybe mention PKs in parens:
"Unique constraints (and[, by extension,] primary key constraints) on
partitioned tables must include all the partition key columns. This
limitation exists because PostgreSQL can only enforce uniqueness in each
partition individually.". That text likely should also mention PRIMARY
KEY constraints. That probably should be changed
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services