Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
vacuumdb: Schema-qualify operator in catalog query's WHERE clause.
authorNathan Bossart <nathan@postgresql.org>
Mon, 7 Oct 2024 21:49:20 +0000 (16:49 -0500)
committerNathan Bossart <nathan@postgresql.org>
Mon, 7 Oct 2024 21:49:20 +0000 (16:49 -0500)
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

src/bin/scripts/vacuumdb.c

index 3995e08c58df33dd2e1c4db28332530c5ccd36b8..a4039213e9f5d078624ec5a4f28dc9cbb5f6d562 100644 (file)
@@ -562,7 +562,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");
 
 
    /*