diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/tests/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/tests/utils.py index 28feffc3f..55fe11b14 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/tests/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/tests/utils.py @@ -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() diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/types/tests/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/types/tests/utils.py index 26b9710e0..1d0005e7a 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/types/tests/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/types/tests/utils.py @@ -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()