Re: Bug in pg_autovacuum ?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Bug in pg_autovacuum ?
Дата
Msg-id 1542.1074395916@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Bug in pg_autovacuum ?  (Cott Lang <cott@internetstaff.com>)
Список pgsql-bugs
Cott Lang <cott@internetstaff.com> writes:
> If the number of tuples is sufficiently high, pg reports 'reltuples'
> back in TABLE_STATS_QUERY in scientific notation instead of an integer.

Right, because that column is actually a float4.

> Changing from atoi() to atof() solves the problem completely.

> new_tbl->reltuples =
>   atof(PQgetvalue(res, row, PQfnumber(res, "reltuples")));

> new_tbl->relpages =
>   atof(PQgetvalue(res, row, PQfnumber(res, "relpages")));

I should think this would break in different ways once reltuples exceeds
INT_MAX.  A full fix would require changing new_tbl->reltuples to be
float or double, and coping with any downstream changes that implies.

Also, relpages *is* an integer, though it's best interpreted as an
unsigned one.  (Ditto for relid.)  Looks like this code is 0-for-3 on
getting the datatypes right :-(

            regards, tom lane

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Cott Lang
Дата:
Сообщение: Bug in pg_autovacuum ?
Следующее
От: "PostgreSQL Bugs List"
Дата:
Сообщение: BUG #1054: inefficient compression of doco html files