BUG #19462: MERGE on partitioned table with INSERT DEFAULT VALUES fails with "iso-8859-1 action in MERGE WHEN clau
| От | PG Bug reporting form |
|---|---|
| Тема | BUG #19462: MERGE on partitioned table with INSERT DEFAULT VALUES fails with "iso-8859-1 action in MERGE WHEN clau |
| Дата | |
| Msg-id | 19462-563c85bec169995a@postgresql.org обсуждение |
| Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 19462 Logged by: chunling qin Email address: 303677365@qq.com PostgreSQL version: 15.0 Operating system: centos Description: ## Summary A MERGE statement targeting a partitioned table fails with `ERROR: unknown action in MERGE WHEN clause` when the NOT MATCHED clause uses `INSERT DEFAULT VALUES`. ## PostgreSQL Version ``` PostgreSQL 15devel on x86_64-pc-linux-gnu, compiled by clang version 17.0.6, 64-bit ``` Tested on REL_15_STABLE branch. ## Steps to Reproduce ```sql -- Setup: Create partitioned target table CREATE TABLE pmerge_tgt (id INT) PARTITION BY RANGE (id); CREATE TABLE pmerge_tgt_lo PARTITION OF pmerge_tgt FOR VALUES FROM (MINVALUE) TO (100); CREATE TABLE pmerge_tgt_hi PARTITION OF pmerge_tgt FOR VALUES FROM (100) TO (MAXVALUE); CREATE TABLE pmerge_tgt_def PARTITION OF pmerge_tgt DEFAULT; -- Create source table CREATE TABLE pmerge_src (id INT); -- Insert test data INSERT INTO pmerge_tgt VALUES (50); INSERT INTO pmerge_src VALUES (200); -- Bug reproduction MERGE INTO pmerge_tgt t USING pmerge_src s ON t.id > 1000 WHEN MATCHED THEN DO NOTHING WHEN NOT MATCHED THEN INSERT DEFAULT VALUES; ``` This issue could not be reproduced with the latest version, but we can easily reproduced by PostgreSQL 15devel. I am submitting this report for official confirmation. -- Bug reproduction MERGE INTO pmerge_tgt t USING pmerge_src s ON t.id > 1000 WHEN MATCHED THEN DO NOTHING WHEN NOT MATCHED THEN INSERT DEFAULT VALUES;ERROR: relation "pmerge_tgt" already exists postgres=# ERROR: relation "pmerge_tgt_lo" already exists postgres=# ERROR: relation "pmerge_tgt_hi" already exists postgres=# ERROR: relation "pmerge_tgt_def" already exists postgres=# postgres=# postgres=# ERROR: relation "pmerge_src" already exists postgres=# postgres=# postgres=# INSERT 0 1 postgres=# INSERT 0 1 postgres=# postgres=# postgres=# postgres-# postgres-# ERROR: unknown action in MERGE WHEN clause
В списке pgsql-bugs по дате отправления: