pyPgSQL 2.4 released - Mailing list pgsql-interfaces
From | Billy G. Allie |
---|---|
Subject | pyPgSQL 2.4 released |
Date | |
Msg-id | 3F233AD2.9050504@mug.org Whole thread Raw |
List | pgsql-interfaces |
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 |
pgsql-interfaces by date: