vacuumlo query cleanups

No need for VACUUM ANAYZE of newly created/populated temp table, just
use analyze.

No need to apologize for using subquery in DELETE anymore.
This commit is contained in:
Bruce Momjian 2009-07-13 22:56:30 +00:00
parent d1ba29420b
commit 6fafa6a0ae
1 changed files with 3 additions and 8 deletions

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/contrib/vacuumlo/vacuumlo.c,v 1.41 2009/02/27 09:30:21 petere Exp $ * $PostgreSQL: pgsql/contrib/vacuumlo/vacuumlo.c,v 1.42 2009/07/13 22:56:30 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -155,11 +155,11 @@ vacuumlo(char *database, struct _param * param)
PQclear(res); PQclear(res);
/* /*
* Vacuum the temp table so that planner will generate decent plans for * Analyze the temp table so that planner will generate decent plans for
* the DELETEs below. * the DELETEs below.
*/ */
buf[0] = '\0'; buf[0] = '\0';
strcat(buf, "VACUUM ANALYZE vacuum_l"); strcat(buf, "ANALYZE vacuum_l");
res = PQexec(conn, buf); res = PQexec(conn, buf);
if (PQresultStatus(res) != PGRES_COMMAND_OK) if (PQresultStatus(res) != PGRES_COMMAND_OK)
{ {
@ -216,11 +216,6 @@ vacuumlo(char *database, struct _param * param)
if (param->verbose) if (param->verbose)
fprintf(stdout, "Checking %s in %s.%s\n", field, schema, table); fprintf(stdout, "Checking %s in %s.%s\n", field, schema, table);
/*
* The "IN" construct used here was horribly inefficient before
* Postgres 7.4, but should be now competitive if not better than the
* bogus join we used before.
*/
snprintf(buf, BUFSIZE, snprintf(buf, BUFSIZE,
"DELETE FROM vacuum_l " "DELETE FROM vacuum_l "
"WHERE lo IN (SELECT \"%s\" FROM \"%s\".\"%s\")", "WHERE lo IN (SELECT \"%s\" FROM \"%s\".\"%s\")",