From 7aec59fe7fc8a28353514a05f40154aea8db39ec Mon Sep 17 00:00:00 2001
From: reshke <reshke@double.cloud>
Date: Thu, 25 Jun 2026 06:31:35 +0000
Subject: [PATCH v1] Schema-qualify psql internal query operators

---
 src/bin/psql/describe.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index af3935b0078..9b00900b44b 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -3973,7 +3973,7 @@ describeRoles(const char *pattern, bool verbose, bool showSystem)
 	appendPQExpBufferStr(&buf, "\nFROM pg_catalog.pg_roles r\n");
 
 	if (!showSystem && !pattern)
-		appendPQExpBufferStr(&buf, "WHERE r.rolname !~ '^pg_'\n");
+		appendPQExpBufferStr(&buf, "WHERE r.rolname OPERATOR(pg_catalog.!~) '^pg_'\n");
 
 	if (!validateSQLNamePattern(&buf, pattern, false, false,
 								NULL, "r.rolname", NULL, NULL,
@@ -4191,7 +4191,7 @@ describeRoleGrants(const char *pattern, bool showSystem)
 						 "     LEFT JOIN pg_catalog.pg_roles g ON (pam.grantor = g.oid)\n");
 
 	if (!showSystem && !pattern)
-		appendPQExpBufferStr(&buf, "WHERE m.rolname !~ '^pg_'\n");
+		appendPQExpBufferStr(&buf, "WHERE m.rolname OPERATOR(pg_catalog.!~) '^pg_'\n");
 
 	if (!validateSQLNamePattern(&buf, pattern, false, false,
 								NULL, "m.rolname", NULL, NULL,
@@ -4384,7 +4384,7 @@ listTables(const char *tabtypes, const char *pattern, bool verbose, bool showSys
 
 	if (!showSystem && !pattern)
 		appendPQExpBufferStr(&buf, "      AND n.nspname <> 'pg_catalog'\n"
-							 "      AND n.nspname !~ '^pg_toast'\n"
+							 "      AND n.nspname OPERATOR(pg_catalog.!~) '^pg_toast'\n"
 							 "      AND n.nspname <> 'information_schema'\n");
 
 	if (!validateSQLNamePattern(&buf, pattern, true, false,
@@ -4670,7 +4670,7 @@ listPartitionedTables(const char *reltypes, const char *pattern, bool verbose)
 
 	if (!pattern)
 		appendPQExpBufferStr(&buf, "      AND n.nspname <> 'pg_catalog'\n"
-							 "      AND n.nspname !~ '^pg_toast'\n"
+							 "      AND n.nspname OPERATOR(pg_catalog.!~) '^pg_toast'\n"
 							 "      AND n.nspname <> 'information_schema'\n");
 
 	if (!validateSQLNamePattern(&buf, pattern, true, false,
@@ -5490,7 +5490,7 @@ listSchemas(const char *pattern, bool verbose, bool showSystem)
 
 	if (!showSystem && !pattern)
 		appendPQExpBufferStr(&buf,
-							 "WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'\n");
+							 "WHERE n.nspname OPERATOR(pg_catalog.!~) '^pg_' AND n.nspname <> 'information_schema'\n");
 
 	if (!validateSQLNamePattern(&buf, pattern,
 								!showSystem && !pattern, false,
-- 
2.43.0

