非互換
FUJITSU Enterprise Postgres 13では、REINDEX CONCURRENTLYの前後でインデックス式のプランナ統計情報が維持されるようになります。
REINDEX CONCURRENTLY の前後でインデックス式のプランナ統計情報が維持しません。
[例]
=# CREATE TABLE concur_exprs_tab (c1 int , c2 boolean); =# INSERT INTO concur_exprs_tab (c1, c2) VALUES (1369652450, FALSE); =# CREATE UNIQUE INDEX concur_exprs_index_expr -# ON concur_exprs_tab ((c1::text COLLATE "C")); =# ANALYZE concur_exprs_tab; =# SELECT starelid::regclass, count(*) FROM pg_statistic WHERE starelid IN ( (# 'concur_exprs_index_expr'::regclass) -# GROUP BY starelid ORDER BY starelid::regclass::text; starelid | count -------------------------+------- concur_exprs_index_expr | 1 (1 row) =# REINDEX TABLE CONCURRENTLY concur_exprs_tab; =# SELECT starelid::regclass, count(*) FROM pg_statistic WHERE starelid IN ( (# 'concur_exprs_index_expr'::regclass) -# GROUP BY starelid ORDER BY starelid::regclass::text; starelid | count ----------+------- (0 row)
REINDEX CONCURRENTLY の前後でインデックス式のプランナ統計情報が維持されます。
[例]
=# CREATE TABLE concur_exprs_tab (c1 int , c2 boolean); =# INSERT INTO concur_exprs_tab (c1, c2) VALUES (1369652450, FALSE); =# CREATE UNIQUE INDEX concur_exprs_index_expr -# ON concur_exprs_tab ((c1::text COLLATE "C")); =# ANALYZE concur_exprs_tab; =# SELECT starelid::regclass, count(*) FROM pg_statistic WHERE starelid IN ( (# 'concur_exprs_index_expr'::regclass) -# GROUP BY starelid ORDER BY starelid::regclass::text; starelid | count -------------------------+------- concur_exprs_index_expr | 1 (1 row) =# REINDEX TABLE CONCURRENTLY concur_exprs_tab; =# SELECT starelid::regclass, count(*) FROM pg_statistic WHERE starelid IN ( (# 'concur_exprs_index_expr'::regclass) -# GROUP BY starelid ORDER BY starelid::regclass::text; starelid | count -------------------------+------- concur_exprs_index_expr | 1 (1 row)
対処方法
ありません。