Announce: pyPgSQL - Version 2.4 is released.
===========================================================================
pyPgSQL v2.4 has been released.
It is available at http://pypgsql.sourceforge.net.
pyPgSQL is a package of two (2) modules that provide a Python DB-API 2.0
compliant interface to PostgreSQL databases. The first module, libpq, is
written in C and exports the PostgreSQL C API to Python. The second module,
PgSQL, provides the DB-API 2.0 compliant interface and support for various
PostgreSQL data types, such as INT8, NUMERIC, MONEY, BOOL, ARRAYS, etc. This
module is written in Python and works with PostgreSQL 7.0 or later and Python
2.0 or later.
It was tested with PostgreSQL 7.0.3, 7.1.3, 7.2.2, 7.3, Python 2.0.1, 2.1.3
and 2.2.2.
Note: It is highly recommended that you use PostgreSQL 7.2 or later and Python 2.1 or later. If you want to use
PostgreSQLLarge Objects under Python 2.2.x, you *must* use Python 2.2.2, or later because of a bug in earlier
2.2versions.
Project homepages:
pyPgSQL: http://pypgsql.sourceforge.net/
PostgreSQL: http://www.postgresql.org/
Python: http://www.python.org/
---------------------------------------------------------------------------
ChangeLog:
===========================================================================
Changes since pyPgSQL Version 2.3
=================================
=-=-=-=-=-=-=-=-=-=-=-=-=- ** IMPORTANT NOTE ** =-=-=-=-=-=-=-=-=-=-=-=-=-=
NOTE: There is a change to the Connection.binary() function that *could* cause existing code to break.
Connection.binary()no longer commits the transaction used to create the large object. The application
developeris now responsible for commiting (or rolling back) the transaction.
-=-=-=-=-=-=-=-=-=-=-=-=-= ** IMPORTANT NOTE ** -=-=-=-=-=-=-=-=-=-=-=-=-=-
Changes to README
-----------------
* Updates for 2.4.
Changes to PgSQL.py
-------------------
* Applied patch from Laurent Pinchart to allow _quote to correctly process objects that are sub-classed from String and
Longtypes.
* Change the name of the quoting function back to _quote. Variables named like __*__ should be restrict to system
names.
* PgTypes is now hashable. repr() of a PgType will now return the repr() of the underlying OID.
* Connection.binary() will now fail if autocommit is enabled.
* Connection.binary() will no longer commit the transaction after creating the large object. The application developer
isnow responsible for commiting (or for rolling back) the transaction [Bug #747525].
* Added PG_TIMETZ to the mix [Patch #708013].
* Pg_Money will now accept a string as a parameter.
* PostgreSQL int2, int, int4 will now be cast into Python ints. Int8 will be cast into a Python long. Float4, float8,
andmoney types will be cast into a Python float.
* Correct problem with the PgNumeric.__radd__ method. [Bug #694358]
* Correct problem with conversion of negitive integers (with a given scale and precision) to PgNumerics. [Bug
#694358]
* Work around a problem where the precision and scale of a query result can be different from the first result in the
resultset. [Bug #697221]
* Change the code so that the display length in the cursor.description attribute is always None instead of '-1'.
* Fixed another problem with interval <-> DateTimeDelta casting.
* Corrected a problem that caused the close of a portal (ie. PostgreSQL cursor) to fail.
* Corrected a problem with interval <-> DateTimeDelta casting. [Bug #653044]
* Corrected problem found by Adam Buraczewski in the __setupTransaction function.
* Allow both 'e' and 'E' to signify an exponent in the PgNumeric constructor.
* Correct some problems that were missed in yesterday's fixes (Thanks, Adam, for the help with the problems)
Changes to libpqmodule.c
------------------------
* On win32, we usually statically link against libpq. Because of fortunate circumstances, a problem didn't show up
untilnow: we need to call WSAStartup() to initialize the socket stuff from Windows *in our module* in order for the
staticallylinked libpq to work. I just took the relevant DllMain function from the libpq sources and put it here.
* Modified some comments to reflect reality.
* Applied patch from Laurent Pinchart: In libPQquoteString, bytea are quoted using as much as 5 bytes per input byte
(0x00is quoted '\\000'), so allocating (slen * 4) + 3 is not enough for data that contain lots of 0x00 bytes.
* Added PG_TIMETZ to the mix [Patch #708013].
Changes to pgboolean.c
----------------------
* Change the name of the quoting function back to _quote. __*__ type names should be restricted to system names.
Changes to pgconnection.c
-------------------------
* Applied patch by Laurent Pinchart to correct a problem lo_import, lo_export, lo_unlink.
* In case PQgetResult returns NULL, let libPQgetResult return a Python None, like the docstring says. This is
necessaryin order to be able to cancel queries, as after cancelling a query with PQrequestCancel, we need to read
resultsuntil PQgetResult returns NULL.
Changes to pglargeobject.c
--------------------------
* Change the name of the quoting function back to _quote. __*__ type names should be restricted to system names.
Changes to pgnotify.c
---------------------
* Fixed a bug in the code. The code in question use to work, but doesn't anymore (possible change to libpq?).
--
___________________________________________________________________________
____ | Billy G. Allie | Domain....: Bill.Allie@mug.org
| /| | 7436 Hartwell | MSN.......: B_G_Allie@email.msn.com
|-/-|----- | Dearborn, MI 48126|
|/ |LLIE | (313) 582-1540 |