Re: Bogus collation version recording in recordMultipleDependencies

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Bogus collation version recording in recordMultipleDependencies
Дата
Msg-id 328722.1618858145@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Bogus collation version recording in recordMultipleDependencies  (Peter Geoghegan <pg@bowt.ie>)
Ответы Re: Bogus collation version recording in recordMultipleDependencies  (Peter Geoghegan <pg@bowt.ie>)
Список pgsql-hackers
Peter Geoghegan <pg@bowt.ie> writes:
> On Mon, Apr 19, 2021 at 10:53 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> I think that the real fundamental bug is supposing that static analysis
>> can give 100% correct answers.

> Is it really the case that static analysis of the kind that you'd need
> to make this 100% robust is fundamentally impossible? I find that
> proposition hard to believe.

I didn't mean to imply that it's necessarily theoretically impossible,
but given our lack of visibility into what a function or operator
will do, plus the way that the collation feature was bolted on
with minimal system-level redesign, it's sure pretty darn hard.
Code like record_eq is doing a lot at runtime that we can't really
see from static analysis.

Anyway, given the ALTER TYPE ADD ATTRIBUTE counterexample, I'm
definitely starting to lean towards "revert and try again in v15".
I feel we'd be best off to consider functions/operators that
operate on container types to be "maybe"s rather than certainly
safe or certainly not safe.  I think that such things appear
sufficiently rarely in index specifications that it's not worth it
to try to do an exact analysis of them, even if we were sure we
could get that 100% right.  But that doesn't seem to be an idea that
can trivially be added to the current design.

            regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Mark Dilger
Дата:
Сообщение: Re: multi-install PostgresNode fails with older postgres versions
Следующее
От: Andrew Dunstan
Дата:
Сообщение: Re: pg_amcheck option to install extension