psycopg release notes - psycopg 3.1.9 documentation
Psycopg - PostgreSQL database adapter for Python - Psycopg documentation
psycopg
release notes
#
Current release #
Psycopg 3.1.9 #
-
Fix
TypeInfo.fetch()
using a connection insql_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 #
-
Don’t pollute server logs when types looked for by
TypeInfo.fetch()
are not found (ticket #473 ). -
Set
Cursor.rowcount
to the number of rows of each result set fromexecutemany()
when called withreturning=True
(ticket #479 ). -
Fix
TypeInfo.fetch()
when used withClientCursor
(ticket #484 ).
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 ofmemoryview
frompq.Encoding
methods (ticket #422 ). -
Fix
Cursor.rownumber
to returnNone
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 withvarchar
andname
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 (
%%
) inClientCursor
(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 #
Psycopg 3.1 #
-
Add Pipeline mode (ticket #74 ).
-
Add Client-side-binding cursors (ticket #101 ).
-
Add CockroachDB support in
psycopg.crdb
(ticket #313 ). -
Add Two-Phase Commit support (ticket #72 ).
-
Add Enum adaptation (ticket #274 ).
-
Add
returning
parameter toexecutemany()
to retrieve query results (ticket #164 ). -
executemany()
performance improved by using batch mode internally (ticket #145 ). -
Add parameters to
copy()
. -
Add COPY Writer objects .
-
Resolve domain names asynchronously in
AsyncConnection.connect()
(ticket #259 ). -
Add
pq.PGconn.trace()
and related trace functions (ticket #167 ). -
Add
prepare_threshold
parameter toConnection
init (ticket #200 ). -
Add
cursor_factory
parameter toConnection
init. -
Add
Error.pgconn
andError.pgresult
attributes (ticket #242 ). -
Restrict queries to be
LiteralString
as per PEP 675 (ticket #323 ). -
Add explicit type cast to values converted by
sql.Literal
(ticket #205 ). -
Drop support for Python 3.6.
Psycopg 3.0.17 #
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 ofOverflowError
loading binary intervals out-of-range. -
Distribute
manylinux2014
wheel packages (ticket #124 ).
Psycopg 3.0.14 #
Psycopg 3.0.13 #
-
Fix
Cursor.stream()
slowness (ticket #286 ). -
Fix oid for lists of integers, which might cause the server choosing bad plans (ticket #293 ).
-
Make
Connection.cancel()
on a closed connection a no-op instead of an error.
Psycopg 3.0.12 #
-
Allow
bytearray
/memoryview
data too asCopy.write()
input (ticket #254 ). -
Fix dumping
IntEnum
in text mode, Python implementation.
Psycopg 3.0.11 #
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 #
Psycopg 3.0.7 #
-
Fix crash in
executemany()
with no input sequence (ticket #179 ). -
Fix wrong
rowcount
after anexecutemany()
returning no rows (ticket #178 ).
Psycopg 3.0.6 #
-
Allow to use
Cursor.description
if the connection is closed (ticket #172 ). -
Don’t raise exceptions on
ServerCursor.close()
if the connection is closed (ticket #173 ). -
Fail on
Connection.cursor()
if the connection is closed (ticket #174 ). -
Raise
ProgrammingError
if out-of-order exit from transaction contexts is detected (tickets #176 , #177 ). -
Add
CHECK_STANDBY
value toConnStatus
enum.
Psycopg 3.0.5 #
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 tobackport.zoneinfo
ticket #109 . -
Build binary package with libpq versions not affected by CVE-2021-23222 (ticket #149 ).
Psycopg 3.0.3 #
Psycopg 3.0.2 #
-
Fix type hint for
sql.SQL.join()
(ticket #127 ). -
Fix type hint for
Connection.notifies()
(ticket #128 ). -
Fix call to
MultiRange.__setitem__()
with a non-iterable value and a slice, now raising aTypeError
(ticket #129 ). -
Fix disable cursors methods after close() (ticket #125 ).
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:
-
Add Geometry adaptation using Shapely (ticket #80 ).
-
Add Multirange adaptation (ticket #75 ).
-
Add
pq.__build_version__
constant. -
Don’t use the extended protocol with COPY, (tickets #78 , #82 ).
-
Fix selection of dumper by oid after
set_types()
. -
Drop
Connection.client_encoding
. UseConnectionInfo.encoding
to read it, and aSET
statement to change it. -
Add binary packages for Python 3.10 (ticket #103 ).
Psycopg 3.0b1 #
-
First public release on PyPI.