Re: pg_autovacuum patch for 7.4.2 and HEAD

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: pg_autovacuum patch for 7.4.2 and HEAD
Дата
Msg-id 3086.1078463071@sss.pgh.pa.us
обсуждение исходный текст
Ответ на pg_autovacuum patch for 7.4.2 and HEAD  ("Matthew T. O'Connor" <matthew@zeut.net>)
Ответы Re: pg_autovacuum patch for 7.4.2 and HEAD  ("Matthew T. O'Connor" <matthew@zeut.net>)
Список pgsql-patches
"Matthew T. O'Connor" <matthew@zeut.net> writes:
> pg_autovacuum.c has some problems with int overflow and not using appropriate
> datatypes to track certain table values.  This patch attempts to fix all
> these issues.  Someone should take a look and make sure its valid.

> !     new_tbl->relid = atol(PQgetvalue(res, row, PQfnumber(res, "oid")));
> !     new_tbl->reltuples = atof(PQgetvalue(res, row, PQfnumber(res, "reltuples")));
> !     new_tbl->relpages = atol(PQgetvalue(res, row, PQfnumber(res, "relpages")));

This ignores the fact that relid and relpages are unsigned.  I would
suggest adopting the same convention for OID as is used in pg_dump and
other places:

#define atooid(x)  ((Oid) strtoul((x), NULL, 10))

You could actually use this same macro for reading relpages, but that's
probably abusing the notation.  I'd use strtoul directly for relpages,
I think.

> ! init_dbinfo(char *dbname, int oid, int age)
> ...
> ! init_dbinfo(char *dbname, uint oid, uint age)

This (and other declarations) should be "Oid oid".

            regards, tom lane

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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: notice about costly ri checks (2)
Следующее
От: Joe Conway
Дата:
Сообщение: Re: [GENERAL] dblink: rollback transaction