psycopg release notes #

Current release #

Psycopg 3.1.9 #

  • Fix TypeInfo.fetch() using a connection in sql_ascii encoding (ticket #503 ).

  • Fix "filedescriptor out of range" using a large number of files open in Python implementation (ticket #532 ).

  • Allow JSON dumpers to be registered on dict or any other object, as was possible in psycopg2 (ticket #541 ).

  • Fix canceling running queries on process interruption in async connections (ticket #543 ).

  • Fix loading ROW values with different types in the same query using the binary protocol (ticket #545 ).

  • Fix dumping recursive composite types (ticket #547 ).

Psycopg 3.1.8 #

Psycopg 3.1.7 #

  • Fix server-side cursors using row factories (ticket #464 ).

Psycopg 3.1.6 #

  • Fix cursor.copy() with cursors using row factories (ticket #460 ).

Psycopg 3.1.5 #

  • Fix array loading slowness compared to psycopg2 (ticket #359 ).

  • Improve performance around network communication (ticket #414 ).

  • Return bytes instead of memoryview from pq.Encoding methods (ticket #422 ).

  • Fix Cursor.rownumber to return None when the result has no row to fetch (ticket #437 ).

  • Avoid error in Pyright caused by aliasing TypeAlias (ticket #439 ).

  • Fix Copy.set_types() used with varchar and name types (ticket #452 ).

  • Improve performance using Row factories (ticket #457 ).

Psycopg 3.1.4 #

  • Include error classes defined in PostgreSQL 15.

  • Add support for Python 3.11 (ticket #305 ).

  • Build binary packages with libpq from PostgreSQL 15.0.

Psycopg 3.1.3 #

  • Restore the state of the connection if Cursor.stream() is terminated prematurely (ticket #382 ).

  • Fix regression introduced in 3.1 with different named tuples mangling rules for non-ascii attribute names (ticket #386 ).

  • Fix handling of queries with escaped percent signs ( %% ) in ClientCursor (ticket #399 ).

  • Fix possible duplicated BEGIN statements emitted in pipeline mode (ticket #401 ).

Psycopg 3.1.2 #

  • Fix handling of certain invalid time zones causing problems on Windows (ticket #371 ).

  • Fix segfault occurring when a loader fails initialization (ticket #372 ).

  • Fix invalid SAVEPOINT issued when entering Connection.transaction() within a pipeline using an implicit transaction (ticket #374 ).

  • Fix queries with repeated named parameters in ClientCursor (ticket #378 ).

  • Distribute macOS arm64 (Apple M1) binary packages (ticket #344 ).

Psycopg 3.1.1 #

  • Work around broken Homebrew installation of the libpq in a non-standard path (ticket #364 )

  • Fix possible "unrecognized service" error in async connection when no port is specified (ticket #366 ).

Psycopg 3.1 #

Psycopg 3.0.17 #

  • Fix segfaults on fork on some Linux systems using ctypes implementation (ticket #300 ).

  • Load bytea as bytes, not memoryview, using ctypes implementation.

Psycopg 3.0.16 #

Psycopg 3.0.15 #

  • Fix wrong escaping of unprintable chars in COPY (nonetheless correctly interpreted by PostgreSQL).

  • Restore the connection to usable state after an error in stream() .

  • Raise DataError instead of OverflowError loading binary intervals out-of-range.

  • Distribute manylinux2014 wheel packages (ticket #124 ).

Psycopg 3.0.14 #

  • Raise DataError dumping arrays of mixed types (ticket #301 ).

  • Fix handling of incorrect server results, with blank sqlstate (ticket #303 ).

  • Fix bad Float4 conversion on ppc64le/musllinux (ticket #304 ).

Psycopg 3.0.13 #

Psycopg 3.0.12 #

Psycopg 3.0.11 #

  • Fix DataError loading arrays with dimensions information (ticket #253 ).

  • Fix hanging during COPY in case of memory error (ticket #255 ).

  • Fix error propagation from COPY worker thread (mentioned in ticket #255 ).

Psycopg 3.0.10 #

  • Leave the connection in working state after interrupting a query with Ctrl-C (ticket #231 ).

  • Fix Cursor.description after a COPY … TO STDOUT operation (ticket #235 ).

  • Fix building on FreeBSD and likely other BSD flavours (ticket #241 ).

Psycopg 3.0.9 #

  • Set Error.sqlstate when an unknown code is received (ticket #225 ).

  • Add the tzdata package as a dependency on Windows in order to handle time zones (ticket #223 ).

Psycopg 3.0.8 #

  • Decode connection errors in the client_encoding specified in the connection string, if available (ticket #194 ).

  • Fix possible warnings in objects deletion on interpreter shutdown (ticket #198 ).

  • Don’t leave connections in ACTIVE state in case of error during COPY … TO STDOUT (ticket #203 ).

Psycopg 3.0.7 #

Psycopg 3.0.6 #

Psycopg 3.0.5 #

  • Fix possible "Too many open files" OS error, reported on macOS but possible on other platforms too (ticket #158 ).

  • Don’t clobber exceptions if a transaction block exit with error and rollback fails (ticket #165 ).

Psycopg 3.0.4 #

  • Allow to use the module with strict strings comparison (ticket #147 ).

  • Fix segfault on Python 3.6 running in -W error mode, related to backport.zoneinfo ticket #109 .

  • Build binary package with libpq versions not affected by CVE-2021-23222 (ticket #149 ).

Psycopg 3.0.3 #

  • Release musllinux binary packages, compatible with Alpine Linux (ticket #141 ).

  • Reduce size of binary package by stripping debug symbols (ticket #142 ).

  • Include typing information in the psycopg_binary package.

Psycopg 3.0.2 #

Psycopg 3.0.1 #

  • Fix use of the wrong dumper reusing cursors with the same query but different parameter types (ticket #112 ).

Psycopg 3.0 #

First stable release. Changed from 3.0b1:

Psycopg 3.0b1 #

  • First public release on PyPI.