public inbox for [email protected]  
help / color / mirror / Atom feed
From: Daniele Varrazzo <[email protected]>
To: [email protected]
Subject: Psycopg 2.8 released
Date: Thu, 4 Apr 2019 13:05:52 +0000
Message-ID: <CA+mi_8adkgSV7c_XuSH3ByST5LDNZFKYw=E32=GHL1bOdCdhuA@mail.gmail.com> (raw)

After about two years from the previous major release, Psycopg 2.8 is
finally here!

Among the highlights, PostgreSQL errors are now mapped to Python
exceptions for a more idiomatic way to handle them. Several additions
allow a better insight of the connection status and query results.

Behind the scene, asynchronous communication and concurrency received
several improvements, and dropping support for older versions of
Python gave the chance to refactor and modernise the codebase (with
the especial help from Jon Dufresne who ruthlessly butchered our code
into a streamlined pulp).

Thank you very much to everyone contributing so far. Happy hacking!

---

New features:

- Added 'errors' module. Every PostgreSQL error is converted into a specific
  exception class (ticket #682).
- Added 'encrypt_password()' function (ticket #576).
- Added 'BYTES' adapter to manage databases with mixed encodings on
  Python 3 (ticket #835).
- Added 'table_oid' and 'table_column' attributes on 'cursor.description' items
  (ticket #661).
- Added 'connection.info' object to retrieve various PostgreSQL
  connection information (ticket #726).
- Added 'get_native_connection()' to expose the raw 'PGconn' structure
  to C extensions via Capsule (ticket #782).
- Added 'pgconn_ptr' and 'pgresult_ptr' to expose raw C structures to
  Python and interact with libpq via ctypes (ticket #782).
- 'sql.Identifier' can represent qualified names in SQL composition
  (ticket #732).
- Added 'ReplicationCursor.wal_end' attribute (ticket #800).
- Added 'fetch' parameter to 'execute_values()' function (ticket #813).
- 'str()' on 'Range' produces a human-readable representation (ticket #773).
- 'DictCursor' and 'RealDictCursor' rows maintain columns order (ticket #177).
- Added 'severity_nonlocalized' attribute on the 'Diagnostics' object
  (ticket #783).
- More efficient '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 '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 compiled against OpenSSL 1.0.2r and PostgreSQL 11.2 libpq.





reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected]
  Subject: Re: Psycopg 2.8 released
  In-Reply-To: <CA+mi_8adkgSV7c_XuSH3ByST5LDNZFKYw=E32=GHL1bOdCdhuA@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox