On Wed, 2024-07-24 at 14:47 -0400, Robert Haas wrote: > On Wed, Jul 24, 2024 at 1:45 PM Jeff Davis <pg...@j-davis.com> wrote: > > There's a qualitative difference between a collation update which > > can > > break your PKs and FKs, and a ctype update which definitely will > > not. > > I don't think that's true. All you need is a unique index on > UPPER(somecol).
Primary keys are on plain column references, not expressions; and don't support WHERE clauses, so I don't see how a ctype update would affect a PK. In any case, you are correct that Unicode updates could put some constraints at risk, including unique indexes, CHECK, and partition constraints. But someone has to actually use one of the affected functions somewhere, and that's the main distinction that I'm trying to draw. The reason why collation is qualitatively a much bigger problem is because there's no obvious indication that you are doing anything related to collation at all. A very plain "CREATE TABLE x(t text PRIMARY KEY)" is at risk. Regards, Jeff Davis