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
--------------------------------------------------------------------------------------------------------
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)
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
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)