[DB-SIG] Announcing the release of pyPgSQL-1.3.

Billy G. Allie Billy G. Allie" <Bill.Allie@mug.org
Mon, 16 Jul 2001 03:30:12 -0400


--==_Exmh_-304170496P
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

Announce: Third public release of pyPgSQL - Version 1.3
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=


pyPgSQL v1.3 has been released.  This is the third public release of
pyPgSQL.  It is primarily a bug fix release with some minor performance
enhancements to the DB-API 2.0 compliant module (see the attached ChangeL=
og
file for details).

It is available at http://sourceforge.net/projects/pypgsql.

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,
exports the PostgreSQL C API to Python.  This module is written in C and
can be compiled into Python or can be dynamically loaded on demand.  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 6.5.2 or later and Python 1.5.2 or later.

PostgreSQL is a sophisticated Object-Relational DBMS, supporting almost a=
ll
SQL constructs, including sub-selects, transactions, and user-defined typ=
es
and functions. It is the most advanced open-source database available
anywhere More information about PostgreSQL can be found at the PostgreSQL=

home page at http://www.postgresql.org.

Python is an interpreted, interactive, object-oriented programming lang-
uage.  It combines remarkable power with very clear syntax.  It has
modules, classes, exceptions, very high level dynamic data types, and
dynamic typing.  There are interfaces to many system calls and libraries,=

as well as to various windowing systems (X11, Motif, Tk, Mac, MFC).  New
builtin modules are easily written in C or C++.  Python is also usable as=

an extension language for applications that need a programmable interface=
=2E =

Python is copyrighted but freely usable and distributable, even for
commercial use.  More information about Python can be found on the Python=

home page at http://www.python.org.

-------------------------------------------------------------------------=
--
ChangeLog:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=


Changes since pyPgSQL Version 1.2
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D

The PgInt2 and PgInt8 type objects (formally implemented as Python classe=
s)
were re-implemented in C.  The PgInt8 C implementation will only be used =
if
long_longs are supported in your architecture, other wise a Python implem=
en-
tation will be used (based on Python's long type).

Changes to PgSQL.py
-------------------
 * Used weak references (if available) to remove the problem of circular
   references between the Connection object and the Cursor objects create=
d
   with it.  The circular references between the Connection object and it=
's
   associated TypeCache object are also resolved.

 * Fixed incorrect reference to .__reset() in the connection object.

 * Changed .execute() so that if a SELECT statement is executed the remai=
ning
   results (if any) of a previous SELECT statement is discarded and repla=
ced
   with the results of the new SELECT query.  The previous behavior was t=
o
   raise an InterfaceError in that situation.

 * Since .execute() will call the reset method as needed, the .reset() me=
thod
   was renamed to .__reset() to make private (at least a private as it ge=
ts
   in Python :-).

 * Change 'version' so that it holds the version number of PgSQL.py.
   PostgreSQL version information is now held in 'version' attribute of t=
he
   connection object.

 * Modified the code so that the .close() method in Cursor conforms to th=
e
   DB-API 2.0 specification.  Closing a cursor now prevents it from being=

   used any further, and dis-associates the cursor from it's connection.
   Committing or rolling back a transaction will no longer closes all the=
 of
   connection's cursors.  It will, however, reset the cursor to it's init=
ial
   result and invalidate any unread query results.

 * Reworked the code so that the .__getattr__() method in Cursor is no lo=
nger
   needed.

 * Change ._reset_() so that it closes the PostgreSQL portal, if one is
   opened.

 * Renamed _reset_() to reset() and document it as an extension to the
   DB-API 2.0 specification.

 * Updated the PgSQL.__doc__ string.

 * Added code to load DateTime from an alternate location (from mx import=

   DateTime) if import DateTime failed.  The alternate location came from=
 a
   patch submitted by Gerhard H=E4ring <ghaering@sf.net>.

 * Minor bug fixes and improvements.

 * Improved the speed of initializing a new PgResultSet by pre-building t=
he
   name to index dictionary when the cursor description attribute is buil=
t.

 * Modified code to use the C implementation of the PgInt2 object.

Changes to libpqmodule.c
------------------------
 * To the extent possible, I pick out the "lint" from the code.  In the
   process, I discovered some nasty little bugs in little used (or tested=
)
   routines.

 * Changed PyObject_HEAD_INIT(&PyType_Type) to PyObject_HEAD_INIT(NULL) t=
o
   silence error produced by some compilers.

 * Modified code to use C implementation of PgInt2 type.

 * Modified code to use C implementation of PgInt8 type.  This code will =
only
   be used if LONG_LONG is defined.

-- =

____       | Billy G. Allie    | Domain....: Bill.Allie@mug.org
|  /|      | 7436 Hartwell     | MSN.......: B_G_Allie@email.msn.com
|-/-|----- | Dearborn, MI 48126|
|/  |LLIE  | (313) 582-1540    |



--==_Exmh_-304170496P
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

Announce: Third public release of pyPgSQL - Version 1.3
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=


pyPgSQL v1.3 has been released.  This is the third public release of
pyPgSQL.  It is primarily a bug fix release with some minor performance
enhancements to the DB-API 2.0 compliant module (see the attached ChangeL=
og
file for details).

It is available at http://sourceforge.net/projects/pypgsql.

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,
exports the PostgreSQL C API to Python.  This module is written in C and
can be compiled into Python or can be dynamically loaded on demand.  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 6.5.2 or later and Python 1.5.2 or later.

PostgreSQL is a sophisticated Object-Relational DBMS, supporting almost a=
ll
SQL constructs, including sub-selects, transactions, and user-defined typ=
es
and functions. It is the most advanced open-source database available
anywhere More information about PostgreSQL can be found at the PostgreSQL=

home page at http://www.postgresql.org.

Python is an interpreted, interactive, object-oriented programming lang-
uage.  It combines remarkable power with very clear syntax.  It has
modules, classes, exceptions, very high level dynamic data types, and
dynamic typing.  There are interfaces to many system calls and libraries,=

as well as to various windowing systems (X11, Motif, Tk, Mac, MFC).  New
builtin modules are easily written in C or C++.  Python is also usable as=

an extension language for applications that need a programmable interface=
=2E =

Python is copyrighted but freely usable and distributable, even for
commercial use.  More information about Python can be found on the Python=

home page at http://www.python.org.

- -------------------------------------------------------------------------=
- --
ChangeLog:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=


Changes since pyPgSQL Version 1.2
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D

The PgInt2 and PgInt8 type objects (formally implemented as Python classe=
s)
were re-implemented in C.  The PgInt8 C implementation will only be used =
if
long_longs are supported in your architecture, other wise a Python implem=
en-
tation will be used (based on Python's long type).

Changes to PgSQL.py
- -------------------
 * Used weak references (if available) to remove the problem of circular
   references between the Connection object and the Cursor objects create=
d
   with it.  The circular references between the Connection object and it=
's
   associated TypeCache object are also resolved.

 * Fixed incorrect reference to .__reset() in the connection object.

 * Changed .execute() so that if a SELECT statement is executed the remai=
ning
   results (if any) of a previous SELECT statement is discarded and repla=
ced
   with the results of the new SELECT query.  The previous behavior was t=
o
   raise an InterfaceError in that situation.

 * Since .execute() will call the reset method as needed, the .reset() me=
thod
   was renamed to .__reset() to make private (at least a private as it ge=
ts
   in Python :-).

 * Change 'version' so that it holds the version number of PgSQL.py.
   PostgreSQL version information is now held in 'version' attribute of t=
he
   connection object.

 * Modified the code so that the .close() method in Cursor conforms to th=
e
   DB-API 2.0 specification.  Closing a cursor now prevents it from being=

   used any further, and dis-associates the cursor from it's connection.
   Committing or rolling back a transaction will no longer closes all the=
 of
   connection's cursors.  It will, however, reset the cursor to it's init=
ial
   result and invalidate any unread query results.

 * Reworked the code so that the .__getattr__() method in Cursor is no lo=
nger
   needed.

 * Change ._reset_() so that it closes the PostgreSQL portal, if one is
   opened.

 * Renamed _reset_() to reset() and document it as an extension to the
   DB-API 2.0 specification.

 * Updated the PgSQL.__doc__ string.

 * Added code to load DateTime from an alternate location (from mx import=

   DateTime) if import DateTime failed.  The alternate location came from=
 a
   patch submitted by Gerhard H=E4ring <ghaering@sf.net>.

 * Minor bug fixes and improvements.

 * Improved the speed of initializing a new PgResultSet by pre-building t=
he
   name to index dictionary when the cursor description attribute is buil=
t.

 * Modified code to use the C implementation of the PgInt2 object.

Changes to libpqmodule.c
- ------------------------
 * To the extent possible, I pick out the "lint" from the code.  In the
   process, I discovered some nasty little bugs in little used (or tested=
)
   routines.

 * Changed PyObject_HEAD_INIT(&PyType_Type) to PyObject_HEAD_INIT(NULL) t=
o
   silence error produced by some compilers.

 * Modified code to use C implementation of PgInt2 type.

 * Modified code to use C implementation of PgInt8 type.  This code will =
only
   be used if LONG_LONG is defined.

- -- =

____       | Billy G. Allie    | Domain....: Bill.Allie@mug.org
|  /|      | 7436 Hartwell     | MSN.......: B_G_Allie@email.msn.com
|-/-|----- | Dearborn, MI 48126|
|/  |LLIE  | (313) 582-1540    |


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.2 (UnixWare)
Comment: Exmh version 2.2 06/23/2000

iD8DBQE7UpgEnmIkMXoVVdURAu8jAJ9lDJw2sCd5Vw0pFDRKXnBh+az8gACaAiCo
6KpgcyUvG+lf+JsvxjJRBEA=
=P9XX
-----END PGP SIGNATURE-----

--==_Exmh_-304170496P--