1
0
mirror of https://github.com/postgres/postgres.git synced 2025-05-12 16:21:30 +03:00

Prevent core dump in contrib version of autovacuum when a table has been

dropped.  Per report from daveg (not his patch, though).
This commit is contained in:
Tom Lane 2005-10-20 16:14:47 +00:00
parent 52e98f8415
commit 01145f963f

View File

@ -142,7 +142,7 @@ init_table_info(PGresult *res, int row, db_info * dbi)
void void
update_table_thresholds(db_info * dbi, tbl_info * tbl, int vacuum_type) update_table_thresholds(db_info * dbi, tbl_info * tbl, int vacuum_type)
{ {
PGresult *res = NULL; PGresult *res;
int disconnect = 0; int disconnect = 0;
char query[128]; char query[128];
@ -156,7 +156,7 @@ update_table_thresholds(db_info * dbi, tbl_info * tbl, int vacuum_type)
{ {
snprintf(query, sizeof(query), PAGES_QUERY, tbl->relid); snprintf(query, sizeof(query), PAGES_QUERY, tbl->relid);
res = send_query(query, dbi); res = send_query(query, dbi);
if (res != NULL) if (res != NULL && PQntuples(res) > 0)
{ {
tbl->reltuples = tbl->reltuples =
atof(PQgetvalue(res, 0, PQfnumber(res, "reltuples"))); atof(PQgetvalue(res, 0, PQfnumber(res, "reltuples")));
@ -178,8 +178,6 @@ update_table_thresholds(db_info * dbi, tbl_info * tbl, int vacuum_type)
(args->analyze_base_threshold + args->analyze_scaling_factor * tbl->reltuples); (args->analyze_base_threshold + args->analyze_scaling_factor * tbl->reltuples);
tbl->CountAtLastAnalyze = tbl->curr_analyze_count; tbl->CountAtLastAnalyze = tbl->curr_analyze_count;
PQclear(res);
/* /*
* If the stats collector is reporting fewer updates then we * If the stats collector is reporting fewer updates then we
* have on record then the stats were probably reset, so we * have on record then the stats were probably reset, so we
@ -192,6 +190,8 @@ update_table_thresholds(db_info * dbi, tbl_info * tbl, int vacuum_type)
tbl->CountAtLastVacuum = tbl->curr_vacuum_count; tbl->CountAtLastVacuum = tbl->curr_vacuum_count;
} }
} }
PQclear(res);
} }
if (disconnect) if (disconnect)
db_disconnect(dbi); db_disconnect(dbi);