agora inbox for pgsql-bugs@postgresql.org  
help / color / mirror / Atom feed
BUG #19580: Can not FINALIZE detach partition. Table in stuck
2+ messages / 2 participants
[nested] [flat]

* BUG #19580: Can not FINALIZE detach partition. Table in stuck
@ 2026-07-25 07:24  PG Bug reporting form <noreply@postgresql.org>
  0 siblings, 1 reply; 2+ messages in thread

From: PG Bug reporting form @ 2026-07-25 07:24 UTC (permalink / raw)
  To: pgsql-bugs@lists.postgresql.org; +Cc: o15611@gmail.com

The following bug has been logged on the website:

Bug reference:      19580
Logged by:          Oleg Ivanov
Email address:      o15611@gmail.com
PostgreSQL version: 18.4
Operating system:   Linux
Description:        

drop table if exists t;
CREATE TABLE t (id bigint GENERATED BY DEFAULT AS IDENTITY, reg int, primary
key (id, reg)) PARTITION BY RANGE (id);
CREATE TABLE t1 PARTITION OF t FOR VALUES FROM (1) TO (20) PARTITION BY
RANGE(reg);
CREATE TABLE t11 PARTITION OF t1 FOR VALUES FROM (1) TO (10);
ALTER TABLE t DETACH PARTITION t1;
ALTER TABLE t ATTACH PARTITION t1 FOR VALUES FROM (1) TO (20);

"generated by default as identity" was added only to t1 and not in t11.
But, the problem is:
ALTER TABLE t DETACH PARTITION t1 CONCURRENTLY;
ERROR:  column "id" of relation "t11" is not an identity column

I can not find a statement to FINALIZE detach:

ALTER TABLE t DETACH PARTITION t1;
ERROR:  cannot detach partition "t1"
DETAIL:  The partition is being detached concurrently or has an unfinished
detach.
HINT:  Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the
pending detach operation.
ALTER TABLE t1 DETACH PARTITION t11;
ERROR:  cannot alter partition "t1" with an incomplete detach
HINT:  Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the
pending detach operation.
ALTER TABLE t11 ALTER COLUMN id ADD generated by default as identity;
ERROR:  cannot add identity to a column of a partition
ALTER TABLE t1 ALTER COLUMN id drop identity;
ERROR:  cannot alter partition "t1" with an incomplete detach
HINT:  Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the
pending detach operation.
ALTER TABLE t11 ALTER COLUMN id drop identity;
ERROR:  cannot drop identity from a column of a partition
ALTER TABLE t ALTER COLUMN id drop identity;
ALTER TABLE
ALTER TABLE t DETACH PARTITION t1 FINALIZE;
ERROR:  column "id" of relation "t11" is not an identity column

Table in stuck.

The only way to FINALIZE is to drop section:
drop table t11;
ALTER TABLE t DETACH PARTITION t1 FINALIZE;







^ permalink  raw  reply  [nested|flat] 2+ messages in thread

* Re: BUG #19580: Can not FINALIZE detach partition. Table in stuck
@ 2026-07-27 11:13  Álvaro Herrera <alvherre@kurilemu.de>
  parent: PG Bug reporting form <noreply@postgresql.org>
  0 siblings, 0 replies; 2+ messages in thread

From: Álvaro Herrera @ 2026-07-27 11:13 UTC (permalink / raw)
  To: o15611@gmail.com; pgsql-bugs@lists.postgresql.org

On 2026-Jul-25, PG Bug reporting form wrote:

> drop table if exists t;
> CREATE TABLE t (id bigint GENERATED BY DEFAULT AS IDENTITY, reg int, primary
> key (id, reg)) PARTITION BY RANGE (id);
> CREATE TABLE t1 PARTITION OF t FOR VALUES FROM (1) TO (20) PARTITION BY
> RANGE(reg);
> CREATE TABLE t11 PARTITION OF t1 FOR VALUES FROM (1) TO (10);
> ALTER TABLE t DETACH PARTITION t1;
> ALTER TABLE t ATTACH PARTITION t1 FOR VALUES FROM (1) TO (20);
> 
> "generated by default as identity" was added only to t1 and not in t11.

Hmm, I think the bug here is that ATTACH PARTITION seems to have
neglected to add the GENERATED BY expression to that column of t11.
When the table was initially created in line 4, the generation
expression was there, but DETACH removes it, and then ATTACH doesn't put
it back.

(If you start this sequence from scratch and try the DETACH CONCURRENTLY
at after creating t11 but before doing the DETACH/ATTACH dance, it seems
to work properly.)

> But, the problem is:
> ALTER TABLE t DETACH PARTITION t1 CONCURRENTLY;
> ERROR:  column "id" of relation "t11" is not an identity column

Even if the above is fixed, maybe this should somehow be made a WARNING
instead of a hard error, to avoid brittleness in DETACH in cases of
bogus catalog contents.

-- 
Álvaro Herrera        Breisgau, Deutschland  —  https://www.EnterpriseDB.com/
"XML!" Exclaimed C++.  "What are you doing here? You're not a programming
language."
"Tell that to the people who use me," said XML.
https://burningbird.net/the-parable-of-the-languages/






^ permalink  raw  reply  [nested|flat] 2+ messages in thread


end of thread, other threads:[~2026-07-27 11:13 UTC | newest]

Thread overview: 2+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2026-07-25 07:24 BUG #19580: Can not FINALIZE detach partition. Table in stuck PG Bug reporting form <noreply@postgresql.org>
2026-07-27 11:13 ` Álvaro Herrera <alvherre@kurilemu.de>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox