Re: ALTER TABLE results in "ERROR: could not open relation with OID 43707388"

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: ALTER TABLE results in "ERROR: could not open relation with OID 43707388"
Дата
Msg-id 31328.1572710659@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: ALTER TABLE results in "ERROR: could not open relation with OID 43707388"  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: ALTER TABLE results in "ERROR: could not open relation with OID 43707388"  (Manuel Rigger <rigger.manuel@gmail.com>)
Список pgsql-bugs
I wrote:
> Manuel Rigger <rigger.manuel@gmail.com> writes:
>> CREATE TABLE t0(c0 INT);
>> CREATE UNIQUE INDEX i0 ON t0(c0);
>> ALTER TABLE t0 ADD PRIMARY KEY USING INDEX i0, ALTER c0 TYPE BIGINT;
>> -- unexpected: ERROR: could not open relation with OID 43707388

> The sequence of events here is that:
> 1. transformIndexConstraint looks up the index "i0" and saves its OID
> in the IndexStmt's indexOid field.
> 2. ALTER c0 TYPE BIGINT executes first, because of ALTER TABLE's
> pass design.  It rebuilds the i0 index --- with a new OID.
> 3. ATExecAddIndexConstraint tries to look up i0 using the old OID.
> Kaboom.

FYI, the patch I posted at

https://www.postgresql.org/message-id/24573.1572647175%40sss.pgh.pa.us

fixes this (as well as your other similar complaint).  I forgot to
add a regression test matching this case, but will do so later.

            regards, tom lane



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: BUG #16016: deadlock with startup process, AccessExclusiveLock on pg_statistic's toast table
Следующее
От: Alexey Ermakov
Дата:
Сообщение: Re: BUG #16016: deadlock with startup process, AccessExclusiveLockon pg_statistic's toast table