fix: quote username in types/compound_triggers test helpers for dotted local roles

Two more test setUp helpers had the same dot-username bug as
user_mappings (504775de8): server['username'] was substituted into
the OWNER TO clause unquoted, so a local PG role with a dot (e.g.
'ashesh.vashi') was rejected with 'syntax error at or near "."'.

- types/tests/utils.py - 'ALTER TYPE ... OWNER TO %s' now uses
  Driver.qtIdent() for the username.
- compound_triggers/tests/utils.py - sql_query template substitution
  now passes the qtIdent-quoted username.

Same Driver.qtIdent(None, server['username']) approach as in 504775de8.
This commit is contained in:
Ashesh Vashi committed 2026-05-01 23:00:48 +05:30
1 parent 504775de80
commit 9b29bc2033
2 files changed
+12 -2

No files matched your search

@@ -13,6 +13,7 @@ import traceback
import os
import json
from pgadmin.utils.driver.psycopg3 import Driver
from regression.python_test_utils import test_utils as utils
CURRENT_PATH = os.path.dirname(os.path.realpath(__file__))
@@ -100,8 +101,12 @@ def create_view(server, db_name, schema_name, sql_query, view_name):
old_isolation_level = connection.isolation_level
utils.set_isolation_level(connection, 0)
pg_cursor = connection.cursor()
# Quote the username as an SQL identifier so usernames containing
# special characters (e.g. dots like 'ashesh.vashi') do not parse
# as schema-qualified names.
quoted_username = Driver.qtIdent(None, server['username'])
query = sql_query % (schema_name, view_name, schema_name, view_name,
server['username'])
quoted_username)
pg_cursor.execute(query)
utils.set_isolation_level(connection, old_isolation_level)
connection.commit()
@@ -13,6 +13,7 @@ import traceback
import os
import json
from pgadmin.utils.driver.psycopg3 import Driver
from regression.python_test_utils import test_utils as utils
CURRENT_PATH = os.path.dirname(os.path.realpath(__file__))
@@ -57,10 +58,14 @@ def create_type(server, db_name, schema_name, type_name):
old_isolation_level = connection.isolation_level
utils.set_isolation_level(connection, 0)
pg_cursor = connection.cursor()
# Quote the username as an SQL identifier so usernames containing
# special characters (e.g. dots like 'ashesh.vashi') do not parse
# as schema-qualified names.
quoted_username = Driver.qtIdent(None, server['username'])
query = 'CREATE TYPE %s.%s AS (one "char", two "char"[]); ' \
'ALTER TYPE %s.%s OWNER TO %s' % (schema_name, type_name,
schema_name, type_name,
server['username'])
quoted_username)
pg_cursor.execute(query)
utils.set_isolation_level(connection, old_isolation_level)
connection.commit()