]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Fix MERGE with DO NOTHING actions into a partitioned table.
authorDean Rasheed <dean.a.rasheed@gmail.com>
Sat, 29 Mar 2025 09:51:23 +0000 (09:51 +0000)
committerDean Rasheed <dean.a.rasheed@gmail.com>
Sat, 29 Mar 2025 09:51:23 +0000 (09:51 +0000)
commit8d4cd3b4a88713bb1083ebee9e6e81bd703f4c3b
tree9158825f894dc8c92509d2a3c73d74c0c23e19d5
parent8d48e84c56889ea26ad1446ce9f22d12bfdb0c14
Fix MERGE with DO NOTHING actions into a partitioned table.

ExecInitPartitionInfo() duplicates much of the logic in
ExecInitMerge(), except that it failed to handle DO NOTHING
actions. This would cause an "unknown action in MERGE WHEN clause"
error if a MERGE with any DO NOTHING actions attempted to insert into
a partition not already initialised by ExecInitModifyTable().

Bug: #18871
Reported-by: Alexander Lakhin <exclusion@gmail.com>
Author: Tender Wang <tndrwang@gmail.com>
Reviewed-by: Gurjeet Singh <gurjeet@singh.im>
Discussion: https://postgr.es/m/18871-b44e3c96de3bd2e8%40postgresql.org
Backpatch-through: 15
src/backend/executor/execPartition.c
src/backend/executor/nodeModifyTable.c
src/test/regress/expected/merge.out
src/test/regress/sql/merge.sql