]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Add override hook PGDialect.set_backslash_escapes()
authorMatt del Valle <matt.del.valle@outplay.com>
Mon, 13 Mar 2023 17:36:38 +0000 (18:36 +0100)
committerMatt del Valle <matt.del.valle@outplay.com>
Mon, 13 Mar 2023 17:36:38 +0000 (18:36 +0100)
lib/sqlalchemy/dialects/postgresql/base.py

index 3ba10380264a20cda62e6967387945c5f1734573..580897f8a1170f0e2f1969ff7b60fd32d163cea7 100644 (file)
@@ -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.