REINDEX CONCURRENTLY causes ALTER TABLE to fail - Mailing list pgsql-bugs

From Manuel Rigger
Subject REINDEX CONCURRENTLY causes ALTER TABLE to fail
Date
Msg-id CA+u7OA5Hp0ra235F3czPom_FyAd-3+XwSJmX95r1+sRPOJc9VQ@mail.gmail.com
Whole thread Raw
Responses Re: REINDEX CONCURRENTLY causes ALTER TABLE to fail  (Michael Paquier <michael@paquier.xyz>)
Re: REINDEX CONCURRENTLY causes ALTER TABLE to fail  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
Hi everyone,

Consider the following statement sequence:

CREATE TABLE t0(c0 INTEGER , c1 BOOLEAN);
INSERT INTO t0(c0, c1) VALUES(1369652450, FALSE), (414515746, TRUE),
(897778963, FALSE);
CREATE UNIQUE INDEX i0 ON t0((1 / t0.c0)) WHERE ('-H') >=
(t0.c1::TEXT) COLLATE "C";
REINDEX TABLE CONCURRENTLY t0;
ALTER TABLE t0 ALTER c1 TYPE TEXT; -- could not create unique index
"i0" DETAIL:  Key ((1 / c0))=(0) is duplicated.

The REINDEX TABLE CONCURRENTLY causes the ALTER TABLE to fail, which
is unexpected. Without the CONCURRENTLY, the ALTER TABLE works as
expected. When first executing a concurrent reindex, which is followed
by a non-current one, the error still occurs, which might suggest that
the concurrent reindex breaks some internal state.

I tested this on trunk. On the latest release version, the
CONCURRENTLY option is not available.



pgsql-bugs by date:

Previous
From: Daniel Gustafsson
Date:
Subject: Re: BUG #15909: Doc for `initdb` on `--data-checksums` says "cannotbe changed later", but *can* be in Pg 12.
Next
From: Mary Kellen Park
Date:
Subject: Re: PLEASE HELP!