pyPgSQL - Version 1.5.1 is released.

Поиск
Список
Период
Сортировка
От Bill.Allie@mug.org
Тема pyPgSQL - Version 1.5.1 is released.
Дата
Msg-id 200108310348.f7V3msn26154@bajor.mug.org
обсуждение исходный текст
Список pgsql-interfaces
pyPgSQL v1.5.1 has been released.  It is a bug fix release to version 1.5.
It corrects problems with the PgLargeObject.read() method and improves the
stability of pyPgSQL in the MS Windows environment.

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 2.0 or later.

Note: It is highly recommended that you use PostgreSQL 7.1 or later and     Python 2.1 or later.

PostgreSQL is a sophisticated Object-Relational DBMS, supporting almost all
SQL constructs, including sub-selects, transactions, and user-defined types
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. 
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:
===========================================================================

Changes since pyPgSQL Version 1.5
=================================

Compiled the code with options to perform extra syntactic, symantic, and
lint-like checks and corrected any problems that were found.

Changes to pglargeobject.c
--------------------------* Why did I introduce a new variable (save) and execute another call to  lo_tell() when it
wasn'tneeded?  (I have to stop working on code late  at night. :-)
 
* Fixed another bug in PgLo_read().  This one would only rear it's ugly  head when read() was called with no arguments,
andthen, only sometimes.  (I REALLY need to stop working on code late at night [or is that early  in the morning] :-).
 

Changes to pgnotify.c
---------------------* Changed calls to PyObject_DEL() to  Py_XDECREF() when deleting objects  embedded in my extension
objects. This corrects a problem expirenced on  MS Windows.
 

Changes to pgresult.c
---------------------* Part of the logic for building the cursor.desccription attribute retrives  an OID from the
databasethat is usually zero (0).  This causes a query to  the database to check to see if the OID represents a large
object. An OID  of zero can never be a large object, so the code was changed so that when  the OID is zero, the check
tosee if it is a large object is skipped.
 

Changes to setup.py
-------------------* Add include_dirs and lib_dirs for building on cygwin.  This change should  allow pyPgSQL to build
'outof the box' on MS Windows using the cygwin  environment.
 

Changes since pyPgSQL Version 1.4
=================================

The code for PgConnection, PgLargeObject, PgNotify, and PgResult was
moved from libpqmodule.c into separate source files.  This was done to 
make it easier to work on the individual pieces of the code.

The following source code files were added to Version 1.5 of pyPgSQL:
   libpqmodule.h    - This include file brings together all the           various header files needed to build
libpqmodule         into one place.   pgconnection.[ch]    - Implements the PgConnection class.   pglargeobject.[ch]
-Implements the PgLargeObject class.   pgnotify.[ch]    - Implements the PgNotify class.   pgresult.[ch]    -
Implementsthe PgResult class.
 

Also, any constant, read-only attributes in PgConnection, PgLargeObject,
PgNotify, PgResult, and PgVersion are now stored as a Python object instead
of as a native C type.  This was done so that when the attribute is refer-
enced in Python, it does not have to be converted to a Python object.

Changes to PgSQL.py
-------------------* Change the code to rollback an open transaction, if any, when the last  cursor of a connection is
closed.[Bug #454653]
 
* Added code that will, if weak references are not available, remove any  cursors that are only referenced from the
connection.cursorslist.  This  is in effect garbage collection for deleted cursors.  The garbage col-  lection of
orphanedcursor will occur at the following points:      1.  After a new cursor is created.      2.  When a cursor is
closed.     3.  When the connection.autocommit value is changed.
 
* Changed cursor.isClosed to cursor.closed.  Why? closed is used in other  object (file and PgLargeObject, for example)
andI thought I would  follow the trend (i.e. for no good reason).
 
* Change from the use of hash() to generate the portal name to the use of  id().
* Added code to trap a failure to connect to a database and delete the  Connection object on failure.  This resolves
theproblem reported by  Adam Buraczewski. [Bug #449743]
 
* Fixed a bug in fetchmany() that could return more than the requested  rows if PostgreSQL Portals aren't used in the
query.

Changes to libpqmodule.c
------------------------* Moved code for PgLargeObject, PgNotify, PgConnection, and PgResult to  their own files.  This
wasdone to make maintenance easier.
 

Changes to pgconnection.c
-------------------------* Changed how ibuf is defined in pgFixEsc to ensure that the memory pointed  to by ibuf is
allocatedfrom the stack, and thus is writable memory.  The  way it was defined before could result in the memory being
allocatedin a  read-only segment. [Bug #450330]
 

Changes to pgresult.c
---------------------* Changed the return type of result.cmdTuple from a Python String object  to an Integer object.
* The code now used pgversion.post70 as a Python Integer.
* Constant, read-only attributes are now stored as Python objects.  This  way they do not have to be created each time
theyare referenced.
 

Changes to pgversion.c
----------------------* Change code to use Py_BuildValue() for creating Python objects from C  values (where
possible).
* Change attributes that were read-only constants from a C type to a  Python Object.  This way they don't need to be
convertedto a Python  Object each time they are referenced.
 
* General code clean up.  Removed some definitions that are in the new  libpqmodule.h header file.


В списке pgsql-interfaces по дате отправления:

Предыдущее
От: Jeremy Buchmann
Дата:
Сообщение: tcl on Mac OS X
Следующее
От: Michael Meskes
Дата:
Сообщение: Re: Query for Postgre