[DB-SIG] pyPgSQL 2.4 released.

Billy G. Allie bill.allie at mug.org
Sat Jul 26 23:35:35 EDT 2003


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 PostgreSQL Large Objects
      under Python 2.2.x, you *must* use Python 2.2.2, or later because of
      a bug in earlier 2.2 versions.

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
      developer is 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 Long types.
* 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 is now 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, and money 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 result set.  [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 until now: we need to
  call WSAStartup() to initialize the socket stuff from Windows *in our
  module* in order for the statically linked 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 (0x00 is 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 necessary in order to be able
  to cancel queries, as after cancelling a query with PQrequestCancel,
  we need to read results until 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 at mug.org
|  /|      | 7436 Hartwell     | MSN.......: B_G_Allie at email.msn.com
|-/-|----- | Dearborn, MI 48126|
|/  |LLIE  | (313) 582-1540    |





More information about the DB-SIG mailing list