- Fix inconsistency in savepoint identification by pq3.Transaction. Savepoints via db.xact() were broken. [Reported by Elvis Pranskevichus]
- 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.
- 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.
- 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__.
- 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]
- 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.
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.