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
This commit is contained in:
Nathan Bossart 2024-10-07 16:49:20 -05:00 committed by Muhammad Usama
parent 79f79f6284
commit eb806ddaf7

View File

@ -684,7 +684,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