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

Поиск
Список
Период
Сортировка
От Tender Wang
Тема Re: BUG #18871: Cross-partition MERGE fails with unclear internal error
Дата
Msg-id CAHewXNmteprb6V1REydM7ehMB0nM9RX4FAEkAFseC2hOy0rY=w@mail.gmail.com
обсуждение исходный текст
Ответ на BUG #18871: Cross-partition MERGE fails with unclear internal error  (PG Bug reporting form <noreply@postgresql.org>)
Ответы Re: BUG #18871: Cross-partition MERGE fails with unclear internal error
Список pgsql-bugs


PG Bug reporting form <noreply@postgresql.org> 于2025年3月28日周五 22:49写道:
The following bug has been logged on the website:

Bug reference:      18871
Logged by:          Alexander Lakhin
Email address:      exclusion@gmail.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.

I tried a quick fix by adding "case CMD_NOTHING" after "case CMD_DELETE" like below:

case CMD_DELETE:
case CMD_NOTHING:
       break;

It can work, and all regression tests pass.  But I don't look into more details.  This solution may not fix the root cause.


--
Thanks,
Tender Wang

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