gincostestimate
От | Jeff Janes |
---|---|
Тема | gincostestimate |
Дата | |
Msg-id | BANLkTinz2do3EqWO9RH66bY2FBOmL=uSoA@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: gincostestimate
|
Список | pgsql-hackers |
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 по дате отправления: