Changelog
### 2.9.10
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Add support for Python 3.13.
- Receive notifications on commit (:ticket:`1728`).
- `~psycopg2.errorcodes` map and `~psycopg2.errors` classes updated to
PostgreSQL 17.
- Drop support for Python 3.7.
```
### 2.9.9
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Add support for Python 3.12.
- Drop support for Python 3.6.
```
### 2.9.8
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Wheel package bundled with PostgreSQL 16 libpq in order to add support for
recent features, such as ``sslcertmode``.
```
### 2.9.7
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fix propagation of exceptions raised during module initialization
(:ticket:`1598`).
- Fix building when pg_config returns an empty string (:ticket:`1599`).
- Wheel package bundled with OpenSSL 1.1.1v.
```
### 2.9.6
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Package manylinux 2014 for aarch64 and ppc64le platforms, in order to
include libpq 15 in the binary package (:ticket:`1396`).
- Wheel package bundled with OpenSSL 1.1.1t.
```
### 2.9.5
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Add support for Python 3.11.
- Add support for rowcount in MERGE statements in binary packages
(:ticket:`1497`).
- Wheel package bundled with OpenSSL 1.1.1r and PostgreSQL 15 libpq.
```
### 2.9.4
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fix `~psycopg2.extras.register_composite()`,
`~psycopg2.extras.register_range()` with customized :sql:`search_path`
(:ticket:`1487`).
- Handle correctly composite types with names or in schemas requiring escape.
- Find ``pg_service.conf`` file in the ``/etc/postgresql-common`` directory in
binary packages (:ticket:`1365`).
- `~psycopg2.errorcodes` map and `~psycopg2.errors` classes updated to
PostgreSQL 15.
- Wheel package bundled with OpenSSL 1.1.1q and PostgreSQL 14.4 libpq.
```
### 2.9.3
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Alpine (musl) wheels now available (:ticket:`1392`).
- macOS arm64 (Apple M1) wheels now available (:ticket:`1482`).
```
### 2.9.2
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Raise `ValueError` for dates >= Y10k (:ticket:`1307`).
- `~psycopg2.errorcodes` map and `~psycopg2.errors` classes updated to
PostgreSQL 14.
- Add preliminary support for Python 3.11 (:tickets:`1376, 1386`).
- Wheel package bundled with OpenSSL 1.1.1l and PostgreSQL 14.1 libpq
(:ticket:`1388`).
```
### 2.9.1
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fix regression with named `~psycopg2.sql.Placeholder` (:ticket:`1291`).
```
### 2.9
```
-------------------------
- ``with connection`` starts a transaction on autocommit transactions too
(:ticket:`941`).
- Timezones with fractional minutes are supported on Python 3.7 and following
(:ticket:`1272`).
- Escape table and column names in `~cursor.copy_from()` and
`~cursor.copy_to()`.
- Connection exceptions with sqlstate ``08XXX`` reclassified as
`~psycopg2.OperationalError` (a subclass of the previously used
`~psycopg2.DatabaseError`) (:ticket:`1148`).
- Include library dirs required from libpq to work around MacOS build problems
(:ticket:`1200`).
Other changes:
- Dropped support for Python 2.7, 3.4, 3.5 (:tickets:`1198, 1000, 1197`).
- Dropped support for mx.DateTime.
- Use `datetime.timezone` objects by default in datetime objects instead of
`~psycopg2.tz.FixedOffsetTimezone`.
- The `psycopg2.tz` module is deprecated and scheduled to be dropped in the
next major release.
- Provide :pep:`599` wheels packages (manylinux2014 tag) for i686 and x86_64
platforms.
- Provide :pep:`600` wheels packages (manylinux_2_24 tag) for aarch64 and
ppc64le platforms.
- Wheel package bundled with OpenSSL 1.1.1k and PostgreSQL 13.3 libpq.
- Build system for Linux/MacOS binary packages moved to GitHub Actions.
```
### 2.8.7
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Accept empty params as `~psycopg2.connect()` (:ticket:`1250`).
- Fix attributes refcount in `Column` initialisation (:ticket:`1252`).
- Allow re-initialisation of static variables in the C module (:ticket:`1267`).
```
### 2.8.6
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fixed memory leak changing connection encoding to the current one
(:ticket:`1101`).
- Fixed search of mxDateTime headers in virtualenvs (:ticket:`996`).
- Added missing values from errorcodes (:ticket:`1133`).
- `cursor.query` reports the query of the last :sql:`COPY` operation too
(:ticket:`1141`).
- `~psycopg2.errorcodes` map and `~psycopg2.errors` classes updated to
PostgreSQL 13.
- Added wheel packages for ARM architecture (:ticket:`1125`).
- Wheel package bundled with OpenSSL 1.1.1g.
```
### 2.8.5
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fixed use of `!connection_factory` and `!cursor_factory` together
(:ticket:`1019`).
- Added support for `~logging.LoggerAdapter` in
`~psycopg2.extras.LoggingConnection` (:ticket:`1026`).
- `~psycopg2.extensions.Column` objects in `cursor.description` can be sliced
(:ticket:`1034`).
- Added AIX support (:ticket:`1061`).
- Fixed `~copy.copy()` of `~psycopg2.extras.DictCursor` rows (:ticket:`1073`).
```
### 2.8.4
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fixed building with Python 3.8 (:ticket:`854`).
- Don't swallow keyboard interrupts on connect when a password is specified
in the connection string (:ticket:`898`).
- Don't advance replication cursor when the message wasn't confirmed
(:ticket:`940`).
- Fixed inclusion of ``time.h`` on linux (:ticket:`951`).
- Fixed int overflow for large values in `~psycopg2.extensions.Column.table_oid`
and `~psycopg2.extensions.Column.type_code` (:ticket:`961`).
- `~psycopg2.errorcodes` map and `~psycopg2.errors` classes updated to
PostgreSQL 12.
- Wheel package bundled with OpenSSL 1.1.1d and PostgreSQL at least 11.4.
```
### 2.8.3
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Added *interval_status* parameter to
`~psycopg2.extras.ReplicationCursor.start_replication()` method and other
facilities to send automatic replication keepalives at periodic intervals
(:ticket:`913`).
- Fixed namedtuples caching introduced in 2.8 (:ticket:`928`).
```
### 2.8.2
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fixed `~psycopg2.extras.RealDictCursor` when there are repeated columns
(:ticket:`884`).
- Binary packages built with openssl 1.1.1b. Should fix concurrency problems
(:tickets:`543, 836`).
```
### 2.8.1
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fixed `~psycopg2.extras.RealDictRow` modifiability (:ticket:`886`).
- Fixed "there's no async cursor" error polling a connection with no cursor
(:ticket:`887`).
```
### 2.8
```
-------------------------
New features:
- Added `~psycopg2.errors` module. Every PostgreSQL error is converted into
a specific exception class (:ticket:`682`).
- Added `~psycopg2.extensions.encrypt_password()` function (:ticket:`576`).
- Added `~psycopg2.extensions.BYTES` adapter to manage databases with mixed
encodings on Python 3 (:ticket:`835`).
- Added `~psycopg2.extensions.Column.table_oid` and
`~psycopg2.extensions.Column.table_column` attributes on `cursor.description`
items (:ticket:`661`).
- Added `connection.info` object to retrieve various PostgreSQL connection
information (:ticket:`726`).
- Added `~connection.get_native_connection()` to expose the raw ``PGconn``
structure to C extensions via Capsule (:ticket:`782`).
- Added `~connection.pgconn_ptr` and `~cursor.pgresult_ptr` to expose raw
C structures to Python and interact with libpq via ctypes (:ticket:`782`).
- `~psycopg2.sql.Identifier` can represent qualified names in SQL composition
(:ticket:`732`).
- Added `!ReplicationCursor`.\ `~psycopg2.extras.ReplicationCursor.wal_end`
attribute (:ticket:`800`).
- Added *fetch* parameter to `~psycopg2.extras.execute_values()` function
(:ticket:`813`).
- `!str()` on `~psycopg2.extras.Range` produces a human-readable representation
(:ticket:`773`).
- `~psycopg2.extras.DictCursor` and `~psycopg2.extras.RealDictCursor` rows
maintain columns order (:ticket:`177`).
- Added `~psycopg2.extensions.Diagnostics.severity_nonlocalized` attribute on
the `~psycopg2.extensions.Diagnostics` object (:ticket:`783`).
- More efficient `~psycopg2.extras.NamedTupleCursor` (:ticket:`838`).
Bug fixes:
- Fixed connections occasionally broken by the unrelated use of the
multiprocessing module (:ticket:`829`).
- Fixed async communication blocking if results are returned in different
chunks, e.g. with notices interspersed to the results (:ticket:`856`).
- Fixed adaptation of numeric subclasses such as `~enum.IntEnum`
(:ticket:`591`).
Other changes:
- Dropped support for Python 2.6, 3.2, 3.3.
- Dropped `psycopg1` module.
- Dropped deprecated `!register_tstz_w_secs()` (was previously a no-op).
- Dropped deprecated `!PersistentConnectionPool`. This pool class was mostly
designed to interact with Zope. Use `!ZPsycopgDA.pool` instead.
- Binary packages no longer installed by default. The 'psycopg2-binary'
package must be used explicitly.
- Dropped `!PSYCOPG_DISPLAY_SIZE` build parameter.
- Dropped support for mxDateTime as the default date and time adapter.
mxDatetime support continues to be available as an alternative to Python's
builtin datetime.
- No longer use 2to3 during installation for Python 2 & 3 compatibility. All
source files are now compatible with Python 2 & 3 as is.
- The `!psycopg2.test` package is no longer installed by ``python setup.py
install``.
- Wheel package bundled with OpenSSL 1.0.2r and PostgreSQL 11.2 libpq.
```
### 2.7.7
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Cleanup of the cursor results assignment code, which might have solved
double free and inconsistencies in concurrent usage (:tickets:`346, 384`).
- Wheel package bundled with OpenSSL 1.0.2q.
```
### 2.7.6.1
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fixed binary package broken on OS X 10.12 (:ticket:`807`).
- Wheel package bundled with PostgreSQL 11.1 libpq.
```
### 2.7.6
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Close named cursors if exist, even if `~cursor.execute()` wasn't called
(:ticket:`746`).
- Fixed building on modern FreeBSD versions with Python 3.7 (:ticket:`755`).
- Fixed hang trying to :sql:`COPY` via `~cursor.execute()` in asynchronous
connections (:ticket:`781`).
- Fixed adaptation of arrays of empty arrays (:ticket:`788`).
- Fixed segfault accessing the connection's `~connection.readonly` and
`~connection.deferrable` attributes repeatedly (:ticket:`790`).
- `~psycopg2.extras.execute_values()` accepts `~psycopg2.sql.Composable`
objects (:ticket:`794`).
- `~psycopg2.errorcodes` map updated to PostgreSQL 11.
- Wheel package bundled with PostgreSQL 10.5 libpq and OpenSSL 1.0.2p.
```
### 2.7.5
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Allow non-ascii chars in namedtuple fields (regression introduced fixing
:ticket:`211`).
- Fixed adaptation of arrays of arrays of nulls (:ticket:`325`).
- Fixed building on Solaris 11 and derivatives such as SmartOS and illumos
(:ticket:`677`).
- Maybe fixed building on MSYS2 (as reported in :ticket:`658`).
- Allow string subclasses in connection and other places (:ticket:`679`).
- Don't raise an exception closing an unused named cursor (:ticket:`716`).
- Wheel package bundled with PostgreSQL 10.4 libpq and OpenSSL 1.0.2o.
```
### 2.7.4
```
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Moving away from installing the wheel package by default.
Packages installed from wheel raise a warning on import. Added package
``psycopg2-binary`` to install from wheel instead (:ticket:`543`).
- Convert fields names into valid Python identifiers in
`~psycopg2.extras.NamedTupleCursor` (:ticket:`211`).
- Fixed Solaris 10 support (:ticket:`532`).
- `cursor.mogrify()` can be called on closed cursors (:ticket:`579`).
- Fixed setting session characteristics in corner cases on autocommit
connections (:ticket:`580`).
- Fixed `~psycopg2.extras.MinTimeLoggingCursor` on Python 3 (:ticket:`609`).
- Fixed parsing of array of points as floats (:ticket:`613`).
- Fixed `~psycopg2.__libpq_version__` building with libpq >= 10.1
(:ticket:`632`).
- Fixed `~cursor.rowcount` after `~cursor.executemany()` with :sql:`RETURNING`
statements (:ticket:`633`).
- Fixed compatibility problem with pypy3 (:ticket:`649`).
- Wheel packages bundled with PostgreSQL 10.1 libpq and OpenSSL 1.0.2n.
- Wheel packages for Python 2.6 no more available (support dropped from
wheel building infrastructure).
```
Links
- PyPI: https://pypi.org/project/psycopg2
- Changelog: https://data.safetycli.com/changelogs/psycopg2/
- Homepage: https://psycopg.org/
This PR updates psycopg2 from 2.7.3.2 to 2.9.10.
Changelog
### 2.9.10 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Add support for Python 3.13. - Receive notifications on commit (:ticket:`1728`). - `~psycopg2.errorcodes` map and `~psycopg2.errors` classes updated to PostgreSQL 17. - Drop support for Python 3.7. ``` ### 2.9.9 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Add support for Python 3.12. - Drop support for Python 3.6. ``` ### 2.9.8 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Wheel package bundled with PostgreSQL 16 libpq in order to add support for recent features, such as ``sslcertmode``. ``` ### 2.9.7 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fix propagation of exceptions raised during module initialization (:ticket:`1598`). - Fix building when pg_config returns an empty string (:ticket:`1599`). - Wheel package bundled with OpenSSL 1.1.1v. ``` ### 2.9.6 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Package manylinux 2014 for aarch64 and ppc64le platforms, in order to include libpq 15 in the binary package (:ticket:`1396`). - Wheel package bundled with OpenSSL 1.1.1t. ``` ### 2.9.5 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Add support for Python 3.11. - Add support for rowcount in MERGE statements in binary packages (:ticket:`1497`). - Wheel package bundled with OpenSSL 1.1.1r and PostgreSQL 15 libpq. ``` ### 2.9.4 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fix `~psycopg2.extras.register_composite()`, `~psycopg2.extras.register_range()` with customized :sql:`search_path` (:ticket:`1487`). - Handle correctly composite types with names or in schemas requiring escape. - Find ``pg_service.conf`` file in the ``/etc/postgresql-common`` directory in binary packages (:ticket:`1365`). - `~psycopg2.errorcodes` map and `~psycopg2.errors` classes updated to PostgreSQL 15. - Wheel package bundled with OpenSSL 1.1.1q and PostgreSQL 14.4 libpq. ``` ### 2.9.3 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Alpine (musl) wheels now available (:ticket:`1392`). - macOS arm64 (Apple M1) wheels now available (:ticket:`1482`). ``` ### 2.9.2 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Raise `ValueError` for dates >= Y10k (:ticket:`1307`). - `~psycopg2.errorcodes` map and `~psycopg2.errors` classes updated to PostgreSQL 14. - Add preliminary support for Python 3.11 (:tickets:`1376, 1386`). - Wheel package bundled with OpenSSL 1.1.1l and PostgreSQL 14.1 libpq (:ticket:`1388`). ``` ### 2.9.1 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fix regression with named `~psycopg2.sql.Placeholder` (:ticket:`1291`). ``` ### 2.9 ``` ------------------------- - ``with connection`` starts a transaction on autocommit transactions too (:ticket:`941`). - Timezones with fractional minutes are supported on Python 3.7 and following (:ticket:`1272`). - Escape table and column names in `~cursor.copy_from()` and `~cursor.copy_to()`. - Connection exceptions with sqlstate ``08XXX`` reclassified as `~psycopg2.OperationalError` (a subclass of the previously used `~psycopg2.DatabaseError`) (:ticket:`1148`). - Include library dirs required from libpq to work around MacOS build problems (:ticket:`1200`). Other changes: - Dropped support for Python 2.7, 3.4, 3.5 (:tickets:`1198, 1000, 1197`). - Dropped support for mx.DateTime. - Use `datetime.timezone` objects by default in datetime objects instead of `~psycopg2.tz.FixedOffsetTimezone`. - The `psycopg2.tz` module is deprecated and scheduled to be dropped in the next major release. - Provide :pep:`599` wheels packages (manylinux2014 tag) for i686 and x86_64 platforms. - Provide :pep:`600` wheels packages (manylinux_2_24 tag) for aarch64 and ppc64le platforms. - Wheel package bundled with OpenSSL 1.1.1k and PostgreSQL 13.3 libpq. - Build system for Linux/MacOS binary packages moved to GitHub Actions. ``` ### 2.8.7 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Accept empty params as `~psycopg2.connect()` (:ticket:`1250`). - Fix attributes refcount in `Column` initialisation (:ticket:`1252`). - Allow re-initialisation of static variables in the C module (:ticket:`1267`). ``` ### 2.8.6 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed memory leak changing connection encoding to the current one (:ticket:`1101`). - Fixed search of mxDateTime headers in virtualenvs (:ticket:`996`). - Added missing values from errorcodes (:ticket:`1133`). - `cursor.query` reports the query of the last :sql:`COPY` operation too (:ticket:`1141`). - `~psycopg2.errorcodes` map and `~psycopg2.errors` classes updated to PostgreSQL 13. - Added wheel packages for ARM architecture (:ticket:`1125`). - Wheel package bundled with OpenSSL 1.1.1g. ``` ### 2.8.5 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed use of `!connection_factory` and `!cursor_factory` together (:ticket:`1019`). - Added support for `~logging.LoggerAdapter` in `~psycopg2.extras.LoggingConnection` (:ticket:`1026`). - `~psycopg2.extensions.Column` objects in `cursor.description` can be sliced (:ticket:`1034`). - Added AIX support (:ticket:`1061`). - Fixed `~copy.copy()` of `~psycopg2.extras.DictCursor` rows (:ticket:`1073`). ``` ### 2.8.4 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed building with Python 3.8 (:ticket:`854`). - Don't swallow keyboard interrupts on connect when a password is specified in the connection string (:ticket:`898`). - Don't advance replication cursor when the message wasn't confirmed (:ticket:`940`). - Fixed inclusion of ``time.h`` on linux (:ticket:`951`). - Fixed int overflow for large values in `~psycopg2.extensions.Column.table_oid` and `~psycopg2.extensions.Column.type_code` (:ticket:`961`). - `~psycopg2.errorcodes` map and `~psycopg2.errors` classes updated to PostgreSQL 12. - Wheel package bundled with OpenSSL 1.1.1d and PostgreSQL at least 11.4. ``` ### 2.8.3 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Added *interval_status* parameter to `~psycopg2.extras.ReplicationCursor.start_replication()` method and other facilities to send automatic replication keepalives at periodic intervals (:ticket:`913`). - Fixed namedtuples caching introduced in 2.8 (:ticket:`928`). ``` ### 2.8.2 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed `~psycopg2.extras.RealDictCursor` when there are repeated columns (:ticket:`884`). - Binary packages built with openssl 1.1.1b. Should fix concurrency problems (:tickets:`543, 836`). ``` ### 2.8.1 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed `~psycopg2.extras.RealDictRow` modifiability (:ticket:`886`). - Fixed "there's no async cursor" error polling a connection with no cursor (:ticket:`887`). ``` ### 2.8 ``` ------------------------- New features: - Added `~psycopg2.errors` module. Every PostgreSQL error is converted into a specific exception class (:ticket:`682`). - Added `~psycopg2.extensions.encrypt_password()` function (:ticket:`576`). - Added `~psycopg2.extensions.BYTES` adapter to manage databases with mixed encodings on Python 3 (:ticket:`835`). - Added `~psycopg2.extensions.Column.table_oid` and `~psycopg2.extensions.Column.table_column` attributes on `cursor.description` items (:ticket:`661`). - Added `connection.info` object to retrieve various PostgreSQL connection information (:ticket:`726`). - Added `~connection.get_native_connection()` to expose the raw ``PGconn`` structure to C extensions via Capsule (:ticket:`782`). - Added `~connection.pgconn_ptr` and `~cursor.pgresult_ptr` to expose raw C structures to Python and interact with libpq via ctypes (:ticket:`782`). - `~psycopg2.sql.Identifier` can represent qualified names in SQL composition (:ticket:`732`). - Added `!ReplicationCursor`.\ `~psycopg2.extras.ReplicationCursor.wal_end` attribute (:ticket:`800`). - Added *fetch* parameter to `~psycopg2.extras.execute_values()` function (:ticket:`813`). - `!str()` on `~psycopg2.extras.Range` produces a human-readable representation (:ticket:`773`). - `~psycopg2.extras.DictCursor` and `~psycopg2.extras.RealDictCursor` rows maintain columns order (:ticket:`177`). - Added `~psycopg2.extensions.Diagnostics.severity_nonlocalized` attribute on the `~psycopg2.extensions.Diagnostics` object (:ticket:`783`). - More efficient `~psycopg2.extras.NamedTupleCursor` (:ticket:`838`). Bug fixes: - Fixed connections occasionally broken by the unrelated use of the multiprocessing module (:ticket:`829`). - Fixed async communication blocking if results are returned in different chunks, e.g. with notices interspersed to the results (:ticket:`856`). - Fixed adaptation of numeric subclasses such as `~enum.IntEnum` (:ticket:`591`). Other changes: - Dropped support for Python 2.6, 3.2, 3.3. - Dropped `psycopg1` module. - Dropped deprecated `!register_tstz_w_secs()` (was previously a no-op). - Dropped deprecated `!PersistentConnectionPool`. This pool class was mostly designed to interact with Zope. Use `!ZPsycopgDA.pool` instead. - Binary packages no longer installed by default. The 'psycopg2-binary' package must be used explicitly. - Dropped `!PSYCOPG_DISPLAY_SIZE` build parameter. - Dropped support for mxDateTime as the default date and time adapter. mxDatetime support continues to be available as an alternative to Python's builtin datetime. - No longer use 2to3 during installation for Python 2 & 3 compatibility. All source files are now compatible with Python 2 & 3 as is. - The `!psycopg2.test` package is no longer installed by ``python setup.py install``. - Wheel package bundled with OpenSSL 1.0.2r and PostgreSQL 11.2 libpq. ``` ### 2.7.7 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Cleanup of the cursor results assignment code, which might have solved double free and inconsistencies in concurrent usage (:tickets:`346, 384`). - Wheel package bundled with OpenSSL 1.0.2q. ``` ### 2.7.6.1 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed binary package broken on OS X 10.12 (:ticket:`807`). - Wheel package bundled with PostgreSQL 11.1 libpq. ``` ### 2.7.6 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Close named cursors if exist, even if `~cursor.execute()` wasn't called (:ticket:`746`). - Fixed building on modern FreeBSD versions with Python 3.7 (:ticket:`755`). - Fixed hang trying to :sql:`COPY` via `~cursor.execute()` in asynchronous connections (:ticket:`781`). - Fixed adaptation of arrays of empty arrays (:ticket:`788`). - Fixed segfault accessing the connection's `~connection.readonly` and `~connection.deferrable` attributes repeatedly (:ticket:`790`). - `~psycopg2.extras.execute_values()` accepts `~psycopg2.sql.Composable` objects (:ticket:`794`). - `~psycopg2.errorcodes` map updated to PostgreSQL 11. - Wheel package bundled with PostgreSQL 10.5 libpq and OpenSSL 1.0.2p. ``` ### 2.7.5 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Allow non-ascii chars in namedtuple fields (regression introduced fixing :ticket:`211`). - Fixed adaptation of arrays of arrays of nulls (:ticket:`325`). - Fixed building on Solaris 11 and derivatives such as SmartOS and illumos (:ticket:`677`). - Maybe fixed building on MSYS2 (as reported in :ticket:`658`). - Allow string subclasses in connection and other places (:ticket:`679`). - Don't raise an exception closing an unused named cursor (:ticket:`716`). - Wheel package bundled with PostgreSQL 10.4 libpq and OpenSSL 1.0.2o. ``` ### 2.7.4 ``` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Moving away from installing the wheel package by default. Packages installed from wheel raise a warning on import. Added package ``psycopg2-binary`` to install from wheel instead (:ticket:`543`). - Convert fields names into valid Python identifiers in `~psycopg2.extras.NamedTupleCursor` (:ticket:`211`). - Fixed Solaris 10 support (:ticket:`532`). - `cursor.mogrify()` can be called on closed cursors (:ticket:`579`). - Fixed setting session characteristics in corner cases on autocommit connections (:ticket:`580`). - Fixed `~psycopg2.extras.MinTimeLoggingCursor` on Python 3 (:ticket:`609`). - Fixed parsing of array of points as floats (:ticket:`613`). - Fixed `~psycopg2.__libpq_version__` building with libpq >= 10.1 (:ticket:`632`). - Fixed `~cursor.rowcount` after `~cursor.executemany()` with :sql:`RETURNING` statements (:ticket:`633`). - Fixed compatibility problem with pypy3 (:ticket:`649`). - Wheel packages bundled with PostgreSQL 10.1 libpq and OpenSSL 1.0.2n. - Wheel packages for Python 2.6 no more available (support dropped from wheel building infrastructure). ```Links
- PyPI: https://pypi.org/project/psycopg2 - Changelog: https://data.safetycli.com/changelogs/psycopg2/ - Homepage: https://psycopg.org/