Release History
Version 1.08, 2010-06-08
- Removed usage of deprecated md5 module, replaced with hashlib.
Thanks to Gavin Sherry for the patch.
- Start transactions on execute or executemany, rather than immediately at the
end of previous transaction. Thanks to Ben Moran for the patch.
- Add encoding lookups where needed, to address usage of SQL_ASCII encoding.
Thanks to Benjamin Schweizer for the patch.
- Remove record type cache SQL query on every new pg8000 connection.
- Fix and test SSL connections.
- Handle out-of-band messages during authentication.
Version 1.07, 2009-01-06
- Added support for copy_to() and
copy_from() methods on cursor objects, to
allow the usage of the PostgreSQL COPY queries. Thanks to Bob Ippolito for
the original patch.
- Added the notifies and
notifies_lock attributes to DBAPI
connection objects to provide access to server-side event notifications.
Thanks again to Bob Ippolito for the original patch.
- Improved performance using buffered socket I/O.
- Added valid range checks for Interval attributes.
- Added binary transmission of Decimal values. This permits
full support for NUMERIC[] types, both send and receive.
- New Sphinx-based website and documentation.
Version 1.06, 2008-12-09
- pg8000-py3: a branch of pg8000 fully supporting Python 3.0.
- New Sphinx-based documentation.
- Support for PostgreSQL array types – INT2[], INT4[], INT8[], FLOAT[],
DOUBLE[], BOOL[], and TEXT[]. New support permits both sending and
receiving these values.
- Limited support for receiving RECORD types. If a record type is received,
it will be translated into a Python dict object.
- Fixed potential threading bug where the socket lock could be lost during
error handling.
Version 1.05, 2008-09-03
- Proper support for timestamptz field type:
- Reading a timestamptz field results in a datetime.datetime instance that
has a valid tzinfo property. tzinfo is always UTC.
- Sending a datetime.datetime instance with a tzinfo value will be
sent as a timestamptz type, with the appropriate tz conversions done.
- Map postgres < – > python text encodings correctly.
- Fix bug where underscores were not permitted in pyformat names.
- Support “%s” in a pyformat strin.
- Add cursor.connection DB-API extension.
- Add cursor.next and cursor.__iter__ DB-API extensions.
- DBAPI documentation improvements.
- Don’t attempt rollback in cursor.execute if a ConnectionClosedError occurs.
- Add warning for accessing exceptions as attributes on the connection object,
as per DB-API spec.
- Fix up open connection when an unexpected connection occurs, rather than
leaving the connection in an unusable state.
- Use setuptools/egg package format.
Version 1.04, 2008-05-12
- DBAPI 2.0 compatibility:
- rowcount returns rows affected when appropriate (eg. UPDATE, DELETE)
- Fix CursorWrapper.description to return a 7 element tuple, as per spec.
- Fix CursorWrapper.rowcount when using executemany.
- Fix CursorWrapper.fetchmany to return an empty sequence when no more
results are available.
- Add access to DBAPI exceptions through connection properties.
- Raise exception on closing a closed connection.
- Change DBAPI.STRING to varchar type.
- rowcount returns -1 when appropriate.
- DBAPI implementation now passes Stuart Bishop’s Python DB API 2.0 Anal
Compliance Unit Test.
- Make interface.Cursor class use unnamed prepared statement that binds to
parameter value types. This change increases the accuracy of PG’s query
plans by including parameter information, hence increasing performance in
some scenarios.
- Raise exception when reading from a cursor without a result set.
- Fix bug where a parse error may have rendered a connection unusable.
Version 1.03, 2008-05-09
- Separate pg8000.py into multiple python modules within the pg8000 package.
There should be no need for a client to change how pg8000 is imported.
- Fix bug in row_description property when query has not been completed.
- Fix bug in fetchmany dbapi method that did not properly deal with the end of
result sets.
- Add close methods to DB connections.
- Add callback event handlers for server notices, notifications, and runtime
configuration changes.
- Add boolean type output.
- Add date, time, and timestamp types in/out.
- Add recognition of “SQL_ASCII” client encoding, which maps to Python’s
“ascii” encoding.
- Add types.Interval class to represent PostgreSQL’s interval data type, and
appropriate wire send/receive methods.
- Remove unused type conversion methods.
Version 1.02, 2007-03-13
- Add complete DB-API 2.0 interface.
- Add basic SSL support via ssl connect bool.
- Rewrite pg8000_test.py to use Python’s unittest library.
- Add bytea type support.
- Add support for parameter output types: NULL value, timestamp value, python
long value.
- Add support for input parameter type oid.
Version 1.01, 2007-03-09
- Add support for writing floats and decimal objs up to PG backend.
- Add new error handling code and tests to make sure connection can recover
from a database error.
- Fixed bug where timestamp types were not always returned in the same binary
format from the PG backend. Text format is now being used to send
timestamps.
- Fixed bug where large packets from the server were not being read fully, due
to socket.read not always returning full read size requested. It was a
lazy-coding bug.
- Added locks to make most of the library thread-safe.
- Added UNIX socket support.
Version 1.00, 2007-03-08
- First public release. Although fully functional, this release is mostly
lacking in production testing and in type support.