Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update psycopg to 3.2.3 #2600

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pyup-bot
Copy link
Collaborator

This PR updates psycopg from 3.1.12 to 3.2.3.

Changelog

3.2.3

^^^^^^^^^^^^^

- Release binary packages including PostgreSQL 17 libpq (:ticket:`852`).

3.2.2

^^^^^^^^^^^^^

- Drop `!TypeDef` specifications as string from public modules, as they cannot
be composed by users as `!typing` objects previously could (:ticket:`860`).
- Release Python 3.13 binary packages.

3.2.1

^^^^^^^^^^^^^

- Fix packaging metadata breaking ``[c]``, ``[binary]`` dependencies
(:ticket:`853`).

3.2

-----------

.. rubric:: New top-level features

- Add support for integer, floating point, boolean `NumPy scalar types`__
(:ticket:`332`).
- Add `!timeout` and `!stop_after` parameters to `Connection.notifies()`
(:ticket:`340`).
- Allow dumpers to return `!None`, to be converted to NULL (:ticket:`377`).
- Add :ref:`raw-query-cursors` to execute queries using placeholders in
PostgreSQL format (`$1`, `$2`...) (:tickets:`560, 839`).
- Add `capabilities` object to :ref:`inspect the libpq capabilities
<capabilities>` (:ticket:`772`).
- Add `~rows.scalar_row` to return scalar values from a query (:ticket:`723`).
- Add `~Connection.cancel_safe()` for encrypted and non-blocking cancellation
when using libpq v17. Use such method internally to implement
`!KeyboardInterrupt` and `~cursor.copy` termination (:ticket:`754`).
- The `!context` parameter of `sql` objects `~sql.Composable.as_string()` and
`~sql.Composable.as_bytes()` methods is now optional (:ticket:`716`).
- Add `~Connection.set_autocommit()` on sync connections, and similar
transaction control methods available on the async connections.
- Add a `size` parameter to `~Cursor.stream()` to enable results retrieval in
chunks instead of row-by-row (:ticket:`794`).

.. rubric:: New libpq wrapper features

- Add support for libpq functions to close prepared statements and portals
introduced in libpq v17 (:ticket:`603`).
- Add support for libpq encrypted and non-blocking query cancellation
functions introduced in libpq v17 (:ticket:`754`).
- Add support for libpq function to retrieve results in chunks introduced in
libpq v17 (:ticket:`793`).
- Add support for libpq function to change role passwords introduced in
libpq v17 (:ticket:`818`).

.. rubric:: Other changes

- Drop support for Python 3.7.
- Prepared statements are now :ref:`compatible with PgBouncer <pgbouncer>`.
(:ticket:`589`).
- Disable receiving more than one result on the same cursor in pipeline mode,
to iterate through `~Cursor.nextset()`. The behaviour was different than
in non-pipeline mode and not totally reliable (:ticket:`604`).
The `Cursor` now only preserves the results set of the last
`~Cursor.execute()`, consistently with non-pipeline mode.

.. __: https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types

3.1.20

^^^^^^^^^^^^^^

- Use the simple query protocol to execute COMMIT/ROLLBACK when possible.
This should make querying the PgBouncer admin database easier
(:ticket:`820`).
- Avoid unneeded escaping checks and memory over-allocation in text copy
(:ticket:`829`).
- Bundle binary package with OpenSSL 3.3.x (:ticket:`847`).
- Drop macOS ARM64 binary packages for macOS versions before 14.0 and Python
before 3.10 (not for our choice but for the lack of available CI runners;
:ticket:`858`)

3.1.19

^^^^^^^^^^^^^^

- Fix unaligned access undefined behaviour in C extension (:ticket:`734`).
- Fix excessive stripping of error message prefixes (:ticket:`752`).
- Allow to specify the ``connect_timeout`` connection parameter as float
(:ticket:`796`).
- Improve COPY performance on macOS (:ticket:`745`).

3.1.18

^^^^^^^^^^^^^^

- Fix possible deadlock on pipeline exit (:ticket:`685`).
- Fix overflow loading large intervals in C module (:ticket:`719`).
- Fix compatibility with musl libc distributions affected by `CPython issue
65821`__ (:ticket:`725`).

.. __: https://github.com/python/cpython/issues/65821

3.1.17

^^^^^^^^^^^^^^

- Fix multiple connection attempts when a host name resolve to multiple
IP addresses (:ticket:`699`).
- Use `typing.Self` as a more correct return value annotation of context
managers and other self-returning methods (see :ticket:`708`).

3.1.16

^^^^^^^^^^^^^^

- Fix empty ports handling in async multiple connection attempts
(:ticket:`703`).

3.1.15

^^^^^^^^^^^^^^

- Fix use of ``service`` in connection string (regression in 3.1.13,
:ticket:`694`).
- Fix async connection to hosts resolving to multiple IP addresses (regression
in 3.1.13, :ticket:`695`).
- Respect the :envvar:`PGCONNECT_TIMEOUT` environment variable to determine
the connection timeout.

3.1.14

^^^^^^^^^^^^^^

- Fix :ref:`interaction with gevent <gevent>` (:ticket:`527`).
- Add support for PyPy (:ticket:`686`).

.. _gevent: https://www.gevent.org/

3.1.13

^^^^^^^^^^^^^^

- Raise `DataError` instead of whatever internal failure trying to dump a
`~datetime.time` object with with a `!tzinfo` specified as
`~zoneinfo.ZoneInfo` (ambiguous offset, see :ticket:`652`).
- Handle gracefully EINTR on signals instead of raising `InterruptedError`,
consistently with :pep:`475` guideline (:ticket:`667`).
- Fix support for connection strings with multiple hosts/ports and for the
``load_balance_hosts`` connection parameter (:ticket:`674`).
- Fix memory leak receiving notifications in Python implementation
(:ticket:`679`).
Links

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant