Skip to content

Commit 725da00

Browse files
committed
make regression tests more stable
1 parent be634f0 commit 725da00

File tree

2 files changed

+64
-48
lines changed

2 files changed

+64
-48
lines changed

expected/pathman_rowmarks.out

+56-48
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,8 @@ FOR SHARE;
169169
(1 row)
170170

171171
/* Check updates (plan) */
172+
SET enable_hashjoin = f; /* Hash Semi Join on 10 vs Hash Join on 9.6 */
173+
SET enable_mergejoin = f; /* Merge Semi Join on 10 vs Merge Join on 9.6 */
172174
EXPLAIN (COSTS OFF)
173175
UPDATE rowmarks.second SET id = 2
174176
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1);
@@ -187,38 +189,38 @@ WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1);
187189
EXPLAIN (COSTS OFF)
188190
UPDATE rowmarks.second SET id = 2
189191
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id < 1);
190-
QUERY PLAN
191-
---------------------------------------------------
192+
QUERY PLAN
193+
-----------------------------------------------
192194
Update on second
193-
-> Hash Join
194-
Hash Cond: (second.id = first_0.id)
195-
-> Seq Scan on second
196-
-> Hash
197-
-> HashAggregate
198-
Group Key: first_0.id
199-
-> Append
200-
-> Seq Scan on first_0
201-
Filter: (id < 1)
202-
-> Seq Scan on first_1
203-
Filter: (id < 1)
204-
-> Seq Scan on first_2
205-
Filter: (id < 1)
206-
-> Seq Scan on first_3
207-
Filter: (id < 1)
208-
-> Seq Scan on first_4
209-
Filter: (id < 1)
195+
-> Nested Loop
196+
Join Filter: (second.id = first_0.id)
197+
-> HashAggregate
198+
Group Key: first_0.id
199+
-> Append
200+
-> Seq Scan on first_0
201+
Filter: (id < 1)
202+
-> Seq Scan on first_1
203+
Filter: (id < 1)
204+
-> Seq Scan on first_2
205+
Filter: (id < 1)
206+
-> Seq Scan on first_3
207+
Filter: (id < 1)
208+
-> Seq Scan on first_4
209+
Filter: (id < 1)
210+
-> Materialize
211+
-> Seq Scan on second
210212
(18 rows)
211213

212214
EXPLAIN (COSTS OFF)
213215
UPDATE rowmarks.second SET id = 2
214216
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1 OR id = 2);
215-
QUERY PLAN
216-
---------------------------------------------
217+
QUERY PLAN
218+
-----------------------------------------------
217219
Update on second
218-
-> Hash Semi Join
219-
Hash Cond: (second.id = first_0.id)
220+
-> Nested Loop Semi Join
221+
Join Filter: (second.id = first_0.id)
220222
-> Seq Scan on second
221-
-> Hash
223+
-> Materialize
222224
-> Append
223225
-> Seq Scan on first_0
224226
Filter: (id = 1)
@@ -242,6 +244,8 @@ RETURNING *, tableoid::regclass;
242244
Filter: (id = 1)
243245
(8 rows)
244246

247+
SET enable_hashjoin = t;
248+
SET enable_mergejoin = t;
245249
/* Check updates (execution) */
246250
UPDATE rowmarks.second SET id = 1
247251
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1 OR id = 2)
@@ -253,6 +257,8 @@ RETURNING *, tableoid::regclass;
253257
(2 rows)
254258

255259
/* Check deletes (plan) */
260+
SET enable_hashjoin = f; /* Hash Semi Join on 10 vs Hash Join on 9.6 */
261+
SET enable_mergejoin = f; /* Merge Semi Join on 10 vs Merge Join on 9.6 */
256262
EXPLAIN (COSTS OFF)
257263
DELETE FROM rowmarks.second
258264
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1);
@@ -271,45 +277,47 @@ WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1);
271277
EXPLAIN (COSTS OFF)
272278
DELETE FROM rowmarks.second
273279
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id < 1);
274-
QUERY PLAN
275-
---------------------------------------------------
280+
QUERY PLAN
281+
-----------------------------------------------
276282
Delete on second
277-
-> Hash Join
278-
Hash Cond: (second.id = first_0.id)
279-
-> Seq Scan on second
280-
-> Hash
281-
-> HashAggregate
282-
Group Key: first_0.id
283-
-> Append
284-
-> Seq Scan on first_0
285-
Filter: (id < 1)
286-
-> Seq Scan on first_1
287-
Filter: (id < 1)
288-
-> Seq Scan on first_2
289-
Filter: (id < 1)
290-
-> Seq Scan on first_3
291-
Filter: (id < 1)
292-
-> Seq Scan on first_4
293-
Filter: (id < 1)
283+
-> Nested Loop
284+
Join Filter: (second.id = first_0.id)
285+
-> HashAggregate
286+
Group Key: first_0.id
287+
-> Append
288+
-> Seq Scan on first_0
289+
Filter: (id < 1)
290+
-> Seq Scan on first_1
291+
Filter: (id < 1)
292+
-> Seq Scan on first_2
293+
Filter: (id < 1)
294+
-> Seq Scan on first_3
295+
Filter: (id < 1)
296+
-> Seq Scan on first_4
297+
Filter: (id < 1)
298+
-> Materialize
299+
-> Seq Scan on second
294300
(18 rows)
295301

296302
EXPLAIN (COSTS OFF)
297303
DELETE FROM rowmarks.second
298304
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1 OR id = 2);
299-
QUERY PLAN
300-
---------------------------------------------
305+
QUERY PLAN
306+
-----------------------------------------------
301307
Delete on second
302-
-> Hash Semi Join
303-
Hash Cond: (second.id = first_0.id)
308+
-> Nested Loop Semi Join
309+
Join Filter: (second.id = first_0.id)
304310
-> Seq Scan on second
305-
-> Hash
311+
-> Materialize
306312
-> Append
307313
-> Seq Scan on first_0
308314
Filter: (id = 1)
309315
-> Seq Scan on first_1
310316
Filter: (id = 2)
311317
(10 rows)
312318

319+
SET enable_hashjoin = t;
320+
SET enable_mergejoin = t;
313321
DROP SCHEMA rowmarks CASCADE;
314322
NOTICE: drop cascades to 7 other objects
315323
DETAIL: drop cascades to table rowmarks.first

sql/pathman_rowmarks.sql

+8
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ WHERE id = (SELECT id FROM rowmarks.second
5959
FOR SHARE;
6060

6161
/* Check updates (plan) */
62+
SET enable_hashjoin = f; /* Hash Semi Join on 10 vs Hash Join on 9.6 */
63+
SET enable_mergejoin = f; /* Merge Semi Join on 10 vs Merge Join on 9.6 */
6264
EXPLAIN (COSTS OFF)
6365
UPDATE rowmarks.second SET id = 2
6466
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1);
@@ -72,13 +74,17 @@ EXPLAIN (COSTS OFF)
7274
UPDATE rowmarks.second SET id = 2
7375
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1)
7476
RETURNING *, tableoid::regclass;
77+
SET enable_hashjoin = t;
78+
SET enable_mergejoin = t;
7579

7680
/* Check updates (execution) */
7781
UPDATE rowmarks.second SET id = 1
7882
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1 OR id = 2)
7983
RETURNING *, tableoid::regclass;
8084

8185
/* Check deletes (plan) */
86+
SET enable_hashjoin = f; /* Hash Semi Join on 10 vs Hash Join on 9.6 */
87+
SET enable_mergejoin = f; /* Merge Semi Join on 10 vs Merge Join on 9.6 */
8288
EXPLAIN (COSTS OFF)
8389
DELETE FROM rowmarks.second
8490
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1);
@@ -88,6 +94,8 @@ WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id < 1);
8894
EXPLAIN (COSTS OFF)
8995
DELETE FROM rowmarks.second
9096
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1 OR id = 2);
97+
SET enable_hashjoin = t;
98+
SET enable_mergejoin = t;
9199

92100

93101

0 commit comments

Comments
 (0)