From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Julien Rouhaud <rjuju123(at)gmail(dot)com>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Bogus collation version recording in recordMultipleDependencies |
Date: | 2021-04-19 17:52:59 |
Message-ID: | 231497.1618854779@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Andres Freund <andres(at)anarazel(dot)de> writes:
> On 2021-04-18 11:29:42 -0400, Tom Lane wrote:
>> I'm not sure that an error in this direction is all that much more
>> problematic than the other direction. If it's okay to claim that
>> indexes need to be rebuilt when they don't really, then we could just
>> drop this entire overcomplicated infrastructure and report that all
>> indexes need to be rebuilt after any collation version change.
> That doesn't ring true to me. There's a huge difference between needing
> to rebuild all indexes, especially primary key indexes which often are
> over int8 etc, and unnecessarily needing to rebuild indexes doing
> comparatively rare things.
It would not be that hard to exclude indexes on int8, or other cases
that clearly have zero collation dependencies. And I think I might
have some faith in such a solution. Right now I have zero faith
that the patch as it stands gives trustworthy answers.
I think that the real fundamental bug is supposing that static analysis
can give 100% correct answers. Even if it did do so in a given state
of the database, consider this counterexample:
create type myrow as (f1 int, f2 int);
create table mytable (id bigint, r1 myrow, r2 myrow);
create index myindex on mytable(id) where r1 < r2;
alter type myrow add attribute f3 text;
myindex is recorded as having no collation dependency, but that is
now wrong.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2021-04-19 17:55:13 | when the startup process doesn't |
Previous Message | Jehan-Guillaume de Rorthais | 2021-04-19 17:50:43 | Re: multi-install PostgresNode fails with older postgres versions |