From 4507723720f7105c5a58ab9fda776405f703b813 Mon Sep 17 00:00:00 2001 From: vismaytiwari Date: Thu, 9 Jul 2026 15:35:51 +0530 Subject: [PATCH v1] psql: schema-qualify catalog references in a tab-completion query The tab-completion query behind Query_for_list_of_database_vars referenced pg_db_role_setting and pg_database without schema qualification. A table of the same name earlier in the user's search_path therefore shadows the catalog and feeds arbitrary values into the completion suggestions for "ALTER DATABASE ... RESET". Qualify both with pg_catalog, matching the qualification already applied to unnest()/split_part() in this same query and to the catalogs in the analogous subscription-variable completion query. Reported-by: Zhou Digoal Bug: #19523 Discussion: https://postgr.es/m/19523-424457118202f570@postgresql.org --- src/bin/psql/tab-complete.in.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c index 49ea584..6a88470 100644 --- a/src/bin/psql/tab-complete.in.c +++ b/src/bin/psql/tab-complete.in.c @@ -1040,8 +1040,8 @@ static const SchemaQuery Query_for_trigger_of_table = { #define Query_for_list_of_database_vars \ "SELECT conf FROM ("\ " SELECT setdatabase, pg_catalog.split_part(pg_catalog.unnest(setconfig),'=',1) conf"\ -" FROM pg_db_role_setting "\ -" ) s, pg_database d "\ +" FROM pg_catalog.pg_db_role_setting "\ +" ) s, pg_catalog.pg_database d "\ " WHERE s.setdatabase = d.oid "\ " AND conf LIKE '%s'"\ " AND d.datname LIKE '%s'" -- 2.50.1 (Apple Git-155)