summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/merge.out17
-rw-r--r--src/test/regress/sql/merge.sql13
2 files changed, 30 insertions, 0 deletions
diff --git a/src/test/regress/expected/merge.out b/src/test/regress/expected/merge.out
index 521d70a8919..e9c9b15d3c8 100644
--- a/src/test/regress/expected/merge.out
+++ b/src/test/regress/expected/merge.out
@@ -2059,6 +2059,23 @@ SELECT * FROM pa_target ORDER BY tid;
(8 rows)
ROLLBACK;
+-- bug #18871: ExecInitPartitionInfo()'s handling of DO NOTHING actions
+BEGIN;
+TRUNCATE pa_target;
+MERGE INTO pa_target t
+ USING (VALUES (10, 100)) AS s(sid, delta)
+ ON t.tid = s.sid
+ WHEN NOT MATCHED THEN
+ INSERT VALUES (1, 10, 'inserted by merge')
+ WHEN MATCHED THEN
+ DO NOTHING;
+SELECT * FROM pa_target ORDER BY tid, val;
+ tid | balance | val
+-----+---------+-------------------
+ 1 | 10 | inserted by merge
+(1 row)
+
+ROLLBACK;
DROP TABLE pa_target CASCADE;
-- The target table is partitioned in the same way, but this time by attaching
-- partitions which have columns in different order, dropped columns etc.
diff --git a/src/test/regress/sql/merge.sql b/src/test/regress/sql/merge.sql
index 5ddcca84f82..556777e4f4b 100644
--- a/src/test/regress/sql/merge.sql
+++ b/src/test/regress/sql/merge.sql
@@ -1269,6 +1269,19 @@ MERGE INTO pa_target t
SELECT * FROM pa_target ORDER BY tid;
ROLLBACK;
+-- bug #18871: ExecInitPartitionInfo()'s handling of DO NOTHING actions
+BEGIN;
+TRUNCATE pa_target;
+MERGE INTO pa_target t
+ USING (VALUES (10, 100)) AS s(sid, delta)
+ ON t.tid = s.sid
+ WHEN NOT MATCHED THEN
+ INSERT VALUES (1, 10, 'inserted by merge')
+ WHEN MATCHED THEN
+ DO NOTHING;
+SELECT * FROM pa_target ORDER BY tid, val;
+ROLLBACK;
+
DROP TABLE pa_target CASCADE;
-- The target table is partitioned in the same way, but this time by attaching