Psycopg

Latest version: v3.2.1

Safety actively analyzes 642295 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 7

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`).

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`).

Page 1 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.