]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
fix(psycopg_c): propagate exceptions in Transformer.set_pgresult()
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 14 Sep 2022 21:02:38 +0000 (22:02 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 14 Sep 2022 21:53:40 +0000 (22:53 +0100)
Fix #372

docs/news.rst
psycopg_c/psycopg_c/_psycopg/transform.pyx
psycopg_c/psycopg_c/types/datetime.pyx

index 1ac7efbde627e2a42a3c8f8e5cf83d51e1a0f711..626cee1073dda0791dd3542bdca134a3093b523d 100644 (file)
@@ -7,6 +7,15 @@
 ``psycopg`` release notes
 =========================
 
+Future releases
+---------------
+
+Psycopg 3.0.19 (unreleased)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Fix segfault occurring when a loader fails initialization (:ticket:`#372`).
+
+
 Current release
 ---------------
 
index ffd8bf99ed2e664b9af18c8b2ad3fe8ce9c3e26d..0c801cea53a5d55c6573b3eb784d776223c28e86 100644 (file)
@@ -108,7 +108,7 @@ cdef class Transformer:
     def pgresult(self) -> Optional[PGresult]:
         return self._pgresult
 
-    cpdef void set_pgresult(
+    cpdef set_pgresult(
         self,
         pq.PGresult result,
         object set_loaders = True,
index b8b21fc32120f2d49230e7bfa816be7d0f1e8585..33b0dd8b710b65539efa822fbce4a06db5ca1a2d 100644 (file)
@@ -1124,8 +1124,6 @@ cdef object _timezone_from_connection(pq.PGconn pgconn):
     # Usually KeyError, but might be a DeprecationWarning raised by -Werror
     # (experienced on Python 3.6.12, backport.zoneinfo 0.2.1).
     # https://github.com/pganssle/zoneinfo/issues/109
-    # Curiously, not trapping the latter, causes a segfault.
-    # In such case the error message is wrong, but hey.
     except Exception:
         logger.warning(
             "unknown PostgreSQL timezone: %r; will use UTC", sname