On Tue, Feb 21, 2012 at 4:03 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:
> Maxim Boguk <maxim.bo...@gmail.com> writes: > > There is some funny results: > > > hh=# VACUUM verbose agency_statistics_old; > > INFO: vacuuming "public.agency_statistics_old" > > INFO: index "agency_statistics_pkey" now contains 0 row versions in 605 > > pages > > DETAIL: 0 index row versions were removed. > > Wow. That seems to blow my theory to small pieces. If the index > contains no entries then it shouldn't be causing any uniqueness check > probes. But at the same time, if the index is empty then how come > pgstatindex showed avg_leaf_density = 0.45 ? > > > May be I should use pageinspect addon to see an actual index pages > content? > > That or pg_filedump would be interesting. But your experiments with > adding data from the other table will probably have produced some new > index entries, which will confuse the situation. Did you save a > physical copy of the index before that? > > Another idea is to attach to the backend with gdb, set a breakpoint at > errfinish, and get a stack trace from the point of the "could not read > block" error. That would show definitively if this is coming from a > uniqueness check or something else entirely. > > regards, tom lane > Yes I had saved a physical copy of the file before start playing with it. Unfortunately that is a production server with no gcc and gdb available so pg_filedump or gdb yet (but I going to work on it). While I waiting for gdb/gcc on that server I had built pg_filedump on the development server using same postgresql version and created pg_filedump of the index file. It can be downloaded there: http://maximboguk.com/static/etc/agency_statistics_pkey.pg_filedump.gz I have not enough knowledge of the b-tree index structure to extract any useful information from that file. Kind Regards, Maksym