From 27e0cdec185db24496b855038fe42e59ad80d494 Mon Sep 17 00:00:00 2001 From: Matt del Valle Date: Mon, 13 Mar 2023 18:36:38 +0100 Subject: [PATCH] Add override hook PGDialect.set_backslash_escapes() --- lib/sqlalchemy/dialects/postgresql/base.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index 3ba1038026..580897f8a1 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -3030,10 +3030,7 @@ class PGDialect(default.DefaultDialect): # https://www.postgresql.org/docs/9.3/static/release-9-2.html#AEN116689 self.supports_smallserial = self.server_version_info >= (9, 2) - std_string = connection.exec_driver_sql( - "show standard_conforming_strings" - ).scalar() - self._backslash_escapes = std_string == "off" + self.set_backslash_escapes() self._supports_drop_index_concurrently = self.server_version_info >= ( 9, @@ -3041,6 +3038,14 @@ class PGDialect(default.DefaultDialect): ) self.supports_identity_columns = self.server_version_info >= (10,) + def set_backslash_escapes(self): + # this method is provided as an override hook for descendant + # dialects (e.g. Redshift), so removing it may break them + std_string = connection.exec_driver_sql( + "show standard_conforming_strings" + ).scalar() + self._backslash_escapes = std_string == "off" + def get_isolation_level_values(self, dbapi_conn): # note the generic dialect doesn't have AUTOCOMMIT, however # all postgresql dialects should include AUTOCOMMIT. -- 2.47.3