From 1ba5d79978db7cf02eabfa03e2b810842327c714 Mon Sep 17 00:00:00 2001 From: Ashesh Vashi Date: Mon, 4 Jan 2016 13:13:27 +0530 Subject: [PATCH] Allow to specify the number of arguments in the qtIdent to make it work with schema specified object name. This will also works with EntepriseDB's package too. Also, added dependency on the current connection object, it will allow us to use the keywords list specific to the database server in futuer. You can use the qtIdent template filter as: conn|qtIdent(name) or, conn|qtIdent(schema_name, name) --- web/pgadmin/utils/driver/psycopg2/__init__.py | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/web/pgadmin/utils/driver/psycopg2/__init__.py b/web/pgadmin/utils/driver/psycopg2/__init__.py index 2b85c6561..fcfc3f3b8 100644 --- a/web/pgadmin/utils/driver/psycopg2/__init__.py +++ b/web/pgadmin/utils/driver/psycopg2/__init__.py @@ -859,16 +859,22 @@ class Driver(BaseDriver): return result @staticmethod - def qtIdent(value): + def qtIdent(conn, *args): + # We're not using the conn object at the moment, but - we will modify the + # logic to use the server version specific keywords later. + res = None + value = None - if (len(value) == 0): - return value + for val in args: + if len(val) == 0: + continue - result = value; + value = val - if (Driver.needsQuoting(result, False)): - result.replace("\"", "\"\"") - return "\"" + result + "\"" - else: - return result; + if (Driver.needsQuoting(val, False)): + value.replace("\"", "\"\"") + value = "\"" + value + "\"" + res = ((res and res + '.') or '') + value + + return res