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.