mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-11-21 03:13:05 +08:00
Temporarily install debugging in partition_prune test
The buildfarm animal parula has been sporadically failing in the partition_prune test for the past week or so. It appears like an auto-vacuum or auto-analyze has run on one of the partitions of the "ab" table, causing the plan to change. This is unexpected as the table is empty. Here we install some telemetry to find out if this is the case. This also joins in pg_index to see if something has gone wrong with the index which could result in the planner being unable to use that index. We can revert this once we've figured out the cause of the plan instability. Reported-by: Tom Lane Investigation-by: Tom Lane Discussion: https://postgr.es/m/4009739.1710878318%40sss.pgh.pa.us
This commit is contained in:
parent
6185c9737c
commit
1db689715d
@ -2449,6 +2449,37 @@ create index ab_a3_b3_a_idx on ab_a3_b3 (a);
|
||||
set enable_hashjoin = 0;
|
||||
set enable_mergejoin = 0;
|
||||
set enable_memoize = 0;
|
||||
-- Temporarily install some debugging to investigate plan instability.
|
||||
select c.relname,c.relpages,c.reltuples,i.indisvalid,s.autovacuum_count,s.autoanalyze_count
|
||||
from pg_class c
|
||||
left join pg_stat_all_tables s on c.oid = s.relid
|
||||
left join pg_index i on c.oid = i.indexrelid
|
||||
where c.relname like 'ab\_%' order by c.relname;
|
||||
relname | relpages | reltuples | indisvalid | autovacuum_count | autoanalyze_count
|
||||
----------------+----------+-----------+------------+------------------+-------------------
|
||||
ab_a1 | 0 | -1 | | 0 | 0
|
||||
ab_a1_b1 | 0 | -1 | | 0 | 0
|
||||
ab_a1_b1_a_idx | 1 | 0 | t | |
|
||||
ab_a1_b2 | 0 | -1 | | 0 | 0
|
||||
ab_a1_b2_a_idx | 1 | 0 | t | |
|
||||
ab_a1_b3 | 0 | -1 | | 0 | 0
|
||||
ab_a1_b3_a_idx | 1 | 0 | t | |
|
||||
ab_a2 | 0 | -1 | | 0 | 0
|
||||
ab_a2_b1 | 0 | -1 | | 0 | 0
|
||||
ab_a2_b1_a_idx | 1 | 0 | t | |
|
||||
ab_a2_b2 | 0 | -1 | | 0 | 0
|
||||
ab_a2_b2_a_idx | 1 | 0 | t | |
|
||||
ab_a2_b3 | 0 | -1 | | 0 | 0
|
||||
ab_a2_b3_a_idx | 1 | 0 | t | |
|
||||
ab_a3 | 0 | -1 | | 0 | 0
|
||||
ab_a3_b1 | 0 | -1 | | 0 | 0
|
||||
ab_a3_b1_a_idx | 1 | 0 | t | |
|
||||
ab_a3_b2 | 0 | -1 | | 0 | 0
|
||||
ab_a3_b2_a_idx | 1 | 0 | t | |
|
||||
ab_a3_b3 | 0 | -1 | | 0 | 0
|
||||
ab_a3_b3_a_idx | 1 | 0 | t | |
|
||||
(21 rows)
|
||||
|
||||
select explain_parallel_append('select avg(ab.a) from ab inner join lprt_a a on ab.a = a.a where a.a in(0, 0, 1)');
|
||||
explain_parallel_append
|
||||
--------------------------------------------------------------------------------------------------------
|
||||
@ -2824,6 +2855,37 @@ deallocate ab_q3;
|
||||
deallocate ab_q4;
|
||||
deallocate ab_q5;
|
||||
deallocate ab_q6;
|
||||
-- Temporarily install some debugging to investigate plan instability.
|
||||
select c.relname,c.relpages,c.reltuples,i.indisvalid,s.autovacuum_count,s.autoanalyze_count
|
||||
from pg_class c
|
||||
left join pg_stat_all_tables s on c.oid = s.relid
|
||||
left join pg_index i on c.oid = i.indexrelid
|
||||
where c.relname like 'ab\_%' order by c.relname;
|
||||
relname | relpages | reltuples | indisvalid | autovacuum_count | autoanalyze_count
|
||||
----------------+----------+-----------+------------+------------------+-------------------
|
||||
ab_a1 | 0 | -1 | | 0 | 0
|
||||
ab_a1_b1 | 0 | -1 | | 0 | 0
|
||||
ab_a1_b1_a_idx | 1 | 0 | t | |
|
||||
ab_a1_b2 | 0 | -1 | | 0 | 0
|
||||
ab_a1_b2_a_idx | 1 | 0 | t | |
|
||||
ab_a1_b3 | 0 | -1 | | 0 | 0
|
||||
ab_a1_b3_a_idx | 1 | 0 | t | |
|
||||
ab_a2 | 0 | -1 | | 0 | 0
|
||||
ab_a2_b1 | 0 | -1 | | 0 | 0
|
||||
ab_a2_b1_a_idx | 1 | 0 | t | |
|
||||
ab_a2_b2 | 0 | -1 | | 0 | 0
|
||||
ab_a2_b2_a_idx | 1 | 0 | t | |
|
||||
ab_a2_b3 | 0 | -1 | | 0 | 0
|
||||
ab_a2_b3_a_idx | 1 | 0 | t | |
|
||||
ab_a3 | 0 | -1 | | 0 | 0
|
||||
ab_a3_b1 | 0 | -1 | | 0 | 0
|
||||
ab_a3_b1_a_idx | 1 | 0 | t | |
|
||||
ab_a3_b2 | 0 | -1 | | 0 | 0
|
||||
ab_a3_b2_a_idx | 1 | 0 | t | |
|
||||
ab_a3_b3 | 0 | -1 | | 0 | 0
|
||||
ab_a3_b3_a_idx | 1 | 0 | t | |
|
||||
(21 rows)
|
||||
|
||||
-- UPDATE on a partition subtree has been seen to have problems.
|
||||
insert into ab values (1,2);
|
||||
explain (analyze, costs off, summary off, timing off)
|
||||
|
@ -607,6 +607,13 @@ set enable_hashjoin = 0;
|
||||
set enable_mergejoin = 0;
|
||||
set enable_memoize = 0;
|
||||
|
||||
-- Temporarily install some debugging to investigate plan instability.
|
||||
select c.relname,c.relpages,c.reltuples,i.indisvalid,s.autovacuum_count,s.autoanalyze_count
|
||||
from pg_class c
|
||||
left join pg_stat_all_tables s on c.oid = s.relid
|
||||
left join pg_index i on c.oid = i.indexrelid
|
||||
where c.relname like 'ab\_%' order by c.relname;
|
||||
|
||||
select explain_parallel_append('select avg(ab.a) from ab inner join lprt_a a on ab.a = a.a where a.a in(0, 0, 1)');
|
||||
|
||||
-- Ensure the same partitions are pruned when we make the nested loop
|
||||
@ -674,6 +681,13 @@ deallocate ab_q4;
|
||||
deallocate ab_q5;
|
||||
deallocate ab_q6;
|
||||
|
||||
-- Temporarily install some debugging to investigate plan instability.
|
||||
select c.relname,c.relpages,c.reltuples,i.indisvalid,s.autovacuum_count,s.autoanalyze_count
|
||||
from pg_class c
|
||||
left join pg_stat_all_tables s on c.oid = s.relid
|
||||
left join pg_index i on c.oid = i.indexrelid
|
||||
where c.relname like 'ab\_%' order by c.relname;
|
||||
|
||||
-- UPDATE on a partition subtree has been seen to have problems.
|
||||
insert into ab values (1,2);
|
||||
explain (analyze, costs off, summary off, timing off)
|
||||
|
Loading…
Reference in New Issue
Block a user