Hi,
The, now reverted, MERGE patch used EXPLAIN (ANALYZE, COSTS OFF, TIMING
OFF) on a few queries. That doesn't seem like a bad idea when it's
interesting to display the plan and run a query without (interesting)
results. Otherwise one has to duplicate the query.
But right now it triggers differences like:
***************
*** 887,893 ****
Hash Cond: (s.sid = t_1.tid)
-> Seq Scan on source s (actual rows=3 loops=1)
-> Hash (actual rows=3 loops=1)
! Buckets: 1024 Batches: 1 Memory Usage: 9kB
-> Seq Scan on target t_1 (actual rows=3 loops=1)
Trigger merge_ard: calls=1
Trigger merge_ari: calls=1
--- 887,893 ----
Hash Cond: (s.sid = t_1.tid)
-> Seq Scan on source s (actual rows=3 loops=1)
-> Hash (actual rows=3 loops=1)
! Buckets: 1024 Batches: 1 Memory Usage: 5kB
-> Seq Scan on target t_1 (actual rows=3 loops=1)
Trigger merge_ard: calls=1
Trigger merge_ari: calls=1
***************
*** 1320,1330 ****
Merge Cond: (t_1.a = s.a)
-> Sort (actual rows=50 loops=1)
Sort Key: t_1.a
! Sort Method: quicksort Memory: 27kB
-> Seq Scan on ex_mtarget t_1 (actual rows=50 loops=1)
-> Sort (actual rows=100 loops=1)
Sort Key: s.a
! Sort Method: quicksort Memory: 33kB
-> Seq Scan on ex_msource s (actual rows=100 loops=1)
(15 rows)
--- 1320,1330 ----
Merge Cond: (t_1.a = s.a)
-> Sort (actual rows=50 loops=1)
Sort Key: t_1.a
! Sort Method: quicksort Memory: 19kB
-> Seq Scan on ex_mtarget t_1 (actual rows=50 loops=1)
-> Sort (actual rows=100 loops=1)
Sort Key: s.a
! Sort Method: quicksort Memory: 24kB
-> Seq Scan on ex_msource s (actual rows=100 loops=1)
(15 rows)
i.e. memory consumption differs between environments. Which isn't
surprising.
I wonder if we could disable the display with a separate switch or tie
it to !'COSTS OFF && TIMING OFF' or such?
Greetings,
Andres Freund