From: Gerhard H?ring <ghaering@us...> - 2002-09-09 00:03:46
Update of /cvsroot/pypgsql/pypgsql
In directory usw-pr-cvs1:/tmp/cvs-serv13799
09SEP2002 gh Initial addition of TODO list for further development.
--- NEW FILE: TODO ---
TODO list for pyPgSQL
ident "@(#) $Id: TODO,v 1.1 2002/09/09 00:03:44 ghaering Exp $"
* Unicode support - Add automatic encoding conversion to the last patch on
* transparent use of refcursors returned from execute/callproc. This will
require the addition of a type that reflects PostgreSQL cursor objects (in
contrast to Python DB-API cursor objects). This object will be very similar
to Python DB-API cursor objects, but not have any execute or callproc methods
* a PgArray type for PostgreSQL ARRAYs. lists and tuples are no longer
converted to PostgreSQL ARRAYs, but are instead quoted for insertion into the
SQL IN function
* support for all standard PostgreSQL data types (point, line, box, etc.)
[This could be placed into pyPgSQL 2.x later]
* An easy to use method (api hook) for adding support for user defined types.
* Investigate trimming down the TypeCache class - why does it need to be able
to typecast PostgreSQL types? Isn't it enough to just convert from string to
PostgreSQL data type?
* profiling, to find out which parts are worth optimizing in Python or
rewriting in C
* performance optimization of typecasts (archictecture changes)
o long term way (v3): do all typecasting for the retrieved rows at
once. Remember the order of typecasters to apply (see below)
o short term way to improve performance: add a method getTypeCasters()
to TypeCache. This gets cursor.description as an attribute and returns
a list of typecasting callables. We'll have to do constructs similar to
"casters.append(lambda x: x or None and PgInt8)" to do so. A simplistic
benchmark shows that this can cut time a __fetchOneRow takes to 50 %
* Investigate ways to improve the performance of PgResultSets (rewrite in C
and/or possible adaptation of Python Database Row Module from
* user's guide, using Docbook/XML, adapting from Redhat Database
Documentation (I've got the ok from its author)
* Make all classes in pyPgSQL/libpq new style classes.
* move certain settings from module-level to connection level
Developers who have claimed items are:
* bga is Billy G. Allie <bill.allie@...>
* gh is Gerhard Häring <gerhard.haering@...>