@@ -109,6 +109,52 @@ RETURNING test;
109109(1 row)
110110
111111DROP TABLE test_updates.test_dummy;
112+ /* cross-partition updates (& different tuple descs) */
113+ TRUNCATE test_updates.test;
114+ SET pg_pathman.enable_partitionrouter = ON;
115+ SELECT *, (select count(*) from pg_attribute where attrelid = partition) as columns
116+ FROM pathman_partition_list
117+ ORDER BY range_min::int, range_max::int;
118+ parent | partition | parttype | expr | range_min | range_max | columns
119+ -------------------+----------------------+----------+------+-----------+-----------+---------
120+ test_updates.test | test_updates.test_1 | 2 | val | 1 | 11 | 9
121+ test_updates.test | test_updates.test_2 | 2 | val | 11 | 21 | 9
122+ test_updates.test | test_updates.test_3 | 2 | val | 21 | 31 | 9
123+ test_updates.test | test_updates.test_4 | 2 | val | 31 | 41 | 9
124+ test_updates.test | test_updates.test_5 | 2 | val | 41 | 51 | 9
125+ test_updates.test | test_updates.test_6 | 2 | val | 51 | 61 | 9
126+ test_updates.test | test_updates.test_7 | 2 | val | 61 | 71 | 9
127+ test_updates.test | test_updates.test_8 | 2 | val | 71 | 81 | 9
128+ test_updates.test | test_updates.test_9 | 2 | val | 81 | 91 | 9
129+ test_updates.test | test_updates.test_10 | 2 | val | 91 | 101 | 9
130+ test_updates.test | test_updates.test_11 | 2 | val | 101 | 111 | 8
131+ (11 rows)
132+
133+ INSERT INTO test_updates.test VALUES (105, 105);
134+ UPDATE test_updates.test SET val = 106 WHERE val = 105 RETURNING *, tableoid::REGCLASS;
135+ val | b | tableoid
136+ -----+-----+----------------------
137+ 106 | 105 | test_updates.test_11
138+ (1 row)
139+
140+ UPDATE test_updates.test SET val = 115 WHERE val = 106 RETURNING *, tableoid::REGCLASS;
141+ val | b | tableoid
142+ -----+-----+----------------------
143+ 115 | 105 | test_updates.test_12
144+ (1 row)
145+
146+ UPDATE test_updates.test SET val = 95 WHERE val = 115 RETURNING *, tableoid::REGCLASS;
147+ val | b | tableoid
148+ -----+-----+----------------------
149+ 95 | 105 | test_updates.test_10
150+ (1 row)
151+
152+ UPDATE test_updates.test SET val = -1 WHERE val = 95 RETURNING *, tableoid::REGCLASS;
153+ val | b | tableoid
154+ -----+-----+----------------------
155+ -1 | 105 | test_updates.test_13
156+ (1 row)
157+
112158DROP SCHEMA test_updates CASCADE;
113- NOTICE: drop cascades to 13 other objects
159+ NOTICE: drop cascades to 15 other objects
114160DROP EXTENSION pg_pathman;
0 commit comments