Changes

0.9.3 released on 2010-01-01

  • Fix inconsistency in savepoint identification by pq3.Transaction. Savepoints via db.xact() were broken. [Reported by Elvis Pranskevichus]

0.9.2 released on 2009-12-14

  • Alter protocol message type comparison method. In 0.9.1 and before, types were compared using ‘is’ because all message type objects were loaded from a tuple created by the postgresql.protocol.message_types module. In some environments, sys.modules is cleared. For pure-Python installations, this is unlikely to cause a problem, but when the optimized module is available, it will hold a reference to the “old” version of the message_types data. Subsequently, the use of the ‘is’ operator is then broken resulting in superfluous protocol errors. The fix is to use the ‘==’ operator. This does not add any significant overhead, but use of ‘is’ may return if some permanent storage method becomes available. [Reported by Radomir Stevanovic]
  • Fix a bug revealed by a no route to host connection failure. Ended in an ambiguous KeyError due there being no message string for that particular errno. Add an appropriate message string, and fallback on a default message when a specific one doesn’t exist.
  • Correct types.Array binary serialization (8.5 added extra checks)
  • Add more encoding name mapping entries.
  • Documentation improvements.
  • Fix slice() support in Row.__getitem__.
  • DEPRECATION: 2PC interfaces are being deprecated. Warnings in 1.0, removal in 1.1.

0.9.1 released on 2009-08-12

  • Fix misaligned reads in C extensions [Reported by Leonardo Francalanci]
  • Don’t be strict about keys(field type) in Notice messages per specification: http://www.postgresql.org/docs/8.4/static/protocol-message-formats.html
  • Fix test_protocol on ubuntu linux systems.
  • Stop waiting for cluster startup on postgresql.exceptions.ProtocolError.
  • DEAD BRANCH: 0.8 is no longer supported.

0.9.0 released on 2009-06-13

  • Performance improvements.
  • Extend postgresql.open to take keyword arguments.
  • Implement query libraries and connection categories[#1010581 & #1010618].
  • Implement clone() on Connections, Statements, and Cursors.
  • Display the line and mark the location of the POSITION for syntax errors.
  • Refactor ps.load() into ps.load_chunks() and ps.load_rows().
  • Refactor postgresql.api.InterfaceElement.
  • Refactor driver.pq3.Connection to use protocol.client3.Connection.
  • Refactor driver.pq3.Cursor into types selected by PreparedStatements.
  • Fix memory leak due to circular references and __del__. [Reported by Valentine Gogichashvili] Additionally, try to avoid circular references at that level.
  • Correct StoredProcedure’s statement production. It was falsely using a a mechanism that would use SQL predefined type names instead of qualified names. [Reported by Dallas Morisett]
  • Make DB-API connect() inherit defaults like postgresql.open()
  • Make DB-API extend PG-API so that DB-API connections will now have direct access to PG-API features.
  • Fix DB-API setting of rowcount after execute. [Reported by Mike Bayer; 1010643]
  • Document msghook attributes, and use postgresql.sys.errformat for postgresql.exceptions.Error.__str__.

0.8.2 released on 2009-06-13

  • Correct StoredProcedure’s statement production. It was falsely using a a mechanism that would use SQL predefined type names instead of qualified names. [Reported by Dallas Morisett]
  • Fix DB-API setting of rowcount after execute. [Reported by Mike Bayer; 1010643]

0.8.1 released on 2009-04-30

  • Fix memory leak due to circular references and __del__. [Reported by Valentine Gogichashvili]
  • Fix encoding normalization. [Reported by Marc Silver]
  • Fix “method” decorator to return callable when val is None.
  • Fix startup of clusters in silent mode.

0.8.0 released on 2009-04-03

Differences from the original pg/python projects.

  • Integrate projects into a single package. Remove “codenames”.
  • pg_greentrunk evolved into PG-API, postgresql.api.
  • Add new execution methods to statement objects: chunks, rows, declare.
  • Refactor connection negotiation code to use a generator. (xact3.Negotiation)
  • Remove sixbit confusion from postgresql.exceptions.
  • Integrate fcrypt module for crypt authentication.
  • Remove pytz dependency, always use UTC for timestamptz.
  • Remove netaddr dependency.
  • Improve DB-API interface by allowing subjective paramstyle. (psycopg2 compat)
  • Provide autocommit support on DB-API connections.
  • Add support for binary numeric.
  • Add proper support for sslmode and connect_timeout.
  • Conditionally DECLARE certain cursors WITH HOLD when outside of blocks.
  • Add typed support for fetches from db.cursor_from_id().
  • Change the test infrastructure to automatically create a cluster.
  • More improvements than I can remember.