Psycopg 2.4 released

Posted by Federico Di Gregorio on 2011-02-27
Tagged as news, release

Hi *,

this is probably one of the best psycopg releases ever. Daniele, Jason and all the others that sent patches did an impressive work to have psycopg build and work flawlessy on all the supported platforms (well.. we can probably do a little bit better on MacOS but everything else is almost perfect). So here it is (followed by NEWS excerpt, as always):

Have fun,

What's new in psycopg 2.4

Added support for Python 3.1 and 3.2. The conversion has also brought several improvements:

  • Added 'b' and 't' mode to large objects: write can deal with both bytes strings and unicode; read can return either bytes strings or decoded unicode.
  • COPY sends Unicode data to files implementing 'io.TextIOBase'.
  • Improved PostgreSQL-Python encodings mapping.
  • Added a few missing encodings: EUC_CN, EUC_JIS_2004, ISO885910, ISO885916, LATIN10, SHIFT_JIS_2004.
  • Dropped repeated dictionary lookups with unicode query/parameters.

Improvements to the named cusors:

  • More efficient iteration on named cursors, fetching 'itersize' records at time from the backend.
  • The named cursors name can be an invalid identifier.

Improvements in data handling:

  • Added 'register_composite()' function to cast PostgreSQL composite types into Python tuples/namedtuples.
  • Adapt types 'bytearray' (from Python 2.6), 'memoryview' (from Python 2.7) and other objects implementing the "Revised Buffer Protocol" to 'bytea' data type.
  • The 'hstore' adapter can work even when the data type is not installed in the 'public' namespace.
  • Raise a clean exception instead of returning bad data when receiving bytea in 'hex' format and the client libpq can't parse them.
  • Empty lists correctly roundtrip Python -> PostgreSQL -> Python.

Other changes:

  • 'cursor.description' is provided as named tuples if available.
  • The build script refuses to guess values if 'pg_config' is not found.
  • Connections and cursors are weakly referenceable.

Bug fixes:

  • Fixed adaptation of None in composite types (ticket #26). Bug report by Karsten Hilbert.
  • Fixed several reference leaks in less common code paths.
  • Fixed segfault when a large object is closed and its connection no more available.
  • Added missing icon to ZPsycopgDA package, not available in Zope 2.12.9 (ticket #30). Bug report and patch by Pumukel.
  • Fixed conversion of negative infinity (ticket #40). Bug report and patch by Marti Raudsepp.