gincostestimate
От
Jeff Janes
Тема
gincostestimate
Дата
Msg-id
BANLkTinz2do3EqWO9RH66bY2FBOmL=uSoA@mail.gmail.com
Список
Дерево обсуждения
gincostestimate Jeff Janes <jeff.janes@gmail.com>
Re: gincostestimate Tom Lane <tgl@sss.pgh.pa.us>
Dear Hackers,
A gin index created on an initially empty table will never get used
until the table is vacuumed, which for a table with no update or
delete activity could be forever unless someone manually intervenes.
The problem is that numEntries in src/backend/utils/adt/selfuncs.c is
zero and eventually causes a division by zero and a cost estimate of
nan.
The code below does not save the day, because nTotalPages and
nEntryPages are 2 and 1 respectively when an index is created on an
empty table, or when an indexed table is truncated.
if (ginStats.nTotalPages == 0 || ginStats.nEntryPages == 0) { numEntryPages = numPages; numDataPages = 0; numEntries = numTuples; /* bogus, but no other info available */ }
I don't know what the solution is. Simply setting numEntries to 1 if
ginStats.nEntries zero solves this particular problem, but I don't
know what other consequences it might have.
Cheers,
Jeff
В списке pgsql-hackers по дате отправления
От: Robert Haas
Дата: