Re: Attribute has wrong type in ALTER TABLE

Поиск
Список
Период
Сортировка
От Manuel Rigger
Тема Re: Attribute has wrong type in ALTER TABLE
Дата
Msg-id CA+u7OA4WD285FfEzcCvjB21OF+JDEEdj_9f5gcvkUC6u26KjUw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Attribute has wrong type in ALTER TABLE  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
Sorry for the duplicate bug report!

In the following test case, the ALTER TABLE seems to result in some
inconsistent database state, which is observed by the subsequent
INSERT:

CREATE TABLE t0(c0 boolean , c1 integer);
ALTER TABLE t0 ADD EXCLUDE (c1 WITH =) WHERE (t0.c0), DROP c0;
INSERT INTO t0(c1) VALUES (0); -- unexpected: ERROR:  attribute 1 of
type record has wrong type

I assume it's the same underlying bug, but maybe this could be useful
as an additional test case.

Best,
Manuel

On Wed, Jul 24, 2019 at 8:02 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Manuel Rigger <rigger.manuel@gmail.com> writes:
> > the statements below result in an error "ERROR:  attribute 1 of type
> > t0 has wrong type":
>
> > CREATE TABLE t0(c0 VARCHAR(10));
> > INSERT INTO t0(c0) VALUES('');
> > ALTER TABLE t0 ALTER c0 SET DATA TYPE TEXT, ADD EXCLUDE (('a' LIKE
> > t0.c0) WITH =); -- unexpected: ERROR:  attribute 1 of type t0 has
> > wrong type
>
> Yeah, this is another variant of the problems with doing
> transformIndexStmt too early, like your previous report
> https://www.postgresql.org/message-id/CA%2Bu7OA4hkFSV_Y%3DsW_vNcYgKFEoq0WL5GtrBWEHUZnCqSqjhAA%40mail.gmail.com
> The index expression is parse-analyzed while c0 is still varchar,
> and then it's wrong by the time we go to create the index.
>
> We need to fix things so that ALTER TABLE doesn't do any of that
> work until after it's finished with ALTER COLUMN TYPE subcommands.
>
>                         regards, tom lane



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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: BUG #15912: The units of `autovacuum_vacuum_cost_delay` settingshould be documented
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: DISCARD TEMP results in "ERROR: cache lookup failed for type 0"