On Tue, Mar 27, 2018 at 08:58:11PM +0900, Masahiko Sawada wrote: > Hi, > > I found that pg_class.reltuples of brin indexes can be either the > number of index tuples or the number of heap tuples. > > =# create table test as select generate_series(1,100000) as c; > =# create index test_brin on test using brin (c); > =# analyze test; > =# select relname, reltuples, relpages from pg_class where relname in > ('test', 'test_brin'); > relname | reltuples | relpages > -----------+-----------+---------- > test | 100000 | 443 > test_brin | 100000 | 3 > (2 rows) > > =# vacuum test; > =# select relname, reltuples, relpages from pg_class where relname in > ('test', 'test_brin'); > relname | reltuples | relpages > -----------+-----------+---------- > test | 100000 | 443 > test_brin | 3 | 3 > (2 rows) > > If I understand correctly pg_class.reltuples of indexes should have > the number of index tuples but especially for brin indexes it would be > hard to estimate it in the analyze code. I thought that we can change > brinvacuumcleanup so that it returns the estimated number of index > tuples and do vac_update_relstats using that value but it would break > API contract. Better ideas?
I assume there is nothing to do on this issue. -- Bruce Momjian <br...@momjian.us> https://momjian.us EDB https://enterprisedb.com Only you can decide what is important to you.