BUG #18871: Cross-partition MERGE fails with unclear internal error

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: exclusion(at)gmail(dot)com
Subject: BUG #18871: Cross-partition MERGE fails with unclear internal error
Date: 2025-03-28 05:00:01
Message-ID: 18871-b44e3c96de3bd2e8@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 18871
Logged by: Alexander Lakhin
Email address: exclusion(at)gmail(dot)com
PostgreSQL version: 17.4
Operating system: Ubuntu 24.04
Description:

The following script:
CREATE TABLE pt(a int, b int) PARTITION BY LIST(a);
CREATE TABLE p1 PARTITION OF pt FOR VALUES IN (a);

MERGE INTO pt USING (SELECT 2 AS a) AS q ON pt.a = q.a
WHEN NOT MATCHED THEN INSERT VALUES (1, 2)
WHEN MATCHED THEN DO NOTHING;
fails with:
ERROR: XX000: unknown action in MERGE WHEN clause
LOCATION: ExecInitPartitionInfo, execPartition.c:962

This error is triggered on REL_15_STABLE (starting from bf5c4b3d9) ..
master.
Before bf5c4b3d9, the MERGE produced ERROR: variable not found in subplan
target lists.

This anomaly is discovered with SQLsmith.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Alexander Lakhin 2025-03-28 06:00:00 Re: BUG #18832: Segfault in GrantLockLocal
Previous Message Tender Wang 2025-03-28 01:59:05 Re: BUG #18866: Running pg_freespace() on views triggers an Abort