vacuumdb: Schema-qualify operator in catalog query's WHERE clause.

Commit 1ab67c9dfa, which modified this catalog query so that it
doesn't return temporary relations, forgot to schema-qualify the
operator.  A comment earlier in the function implores us to fully
qualify everything in the query:

	 * Since we execute the constructed query with the default search_path
	 * (which could be unsafe), everything in this query MUST be fully
	 * qualified.

This commit fixes that.  While at it, add a newline for consistency
with surrounding code.

Reviewed-by: Noah Misch
Discussion: https://postgr.es/m/ZwQJYcuPPUsF0reU%40nathan
Backpatch-through: 12
REL_16_STABLE
Nathan Bossart 11 months ago
parent 8aaf88b63d
commit eba8cc1af8
  1. 3
      src/bin/scripts/vacuumdb.c

@ -694,7 +694,8 @@ vacuum_one_database(ConnParams *cparams,
* Exclude temporary tables, beginning the WHERE clause.
*/
appendPQExpBufferStr(&catalog_query,
" WHERE c.relpersistence != " CppAsString2(RELPERSISTENCE_TEMP));
" WHERE c.relpersistence OPERATOR(pg_catalog.!=) "
CppAsString2(RELPERSISTENCE_TEMP) "\n");
/*
* Used to match the tables or schemas listed by the user, for the WHERE

Loading…
Cancel
Save