[Zope-DB] wishlist

Matthew T. Kromer matt@zope.com
Fri, 21 Sep 2001 09:30:29 -0400


kapil thangavelu wrote:

>On Thursday 20 September 2001 12:42 pm, Matthew T. Kromer wrote:
>
>>This is a direct consequence of the data being sent into the database as
>>strings, not as positional parameters.  I would guess that ZSql methods
>>can be tweaked by simple re-coding to allow you to embed a line-end
>>character for SQL -- but my preferred solution is to try to use bind
>>values instead (which Zope does not support at this time but is on my
>>wish-list to pull some patches and do some other work to support.)
>>
>
>
>Hi matt,
>
>i'm trying to make a zope db wish list for things to do in a rewrite. so far 
>the major things i have are
>
> - connection state management
> - bind variable support 
> - allow for explicit transaction control
> - general code clean up.
> - integration with cache manager api
>
>i was wondering if you would mind sharing whats on your wish list...
>
>thanks
>
>kapil thangavelu
>
Well, my use of the term "wish list" is mostly idiom, but you've covered 
most of the things I'm unhappy with. I also agree with Andy, that I'd 
like to have a very full testing suite for API compliancy.   One wonders 
if opening up the CVS repository will significantly foster growth of 
test suites (my test cases are mostly ad-hoc programs designed to test 
one or two features, not a *validation* suite).

I specifically want to break apart Aqueduct into two components, such 
that DB connection foundations are one piece, but the query generators 
etc are another.   (Aqueduct is Shared.DC.RDBMS).  

In particular, it's probably [way past] time to write a formal API 
description of how it SHOULD work from Zope, not how it DOES work (which 
is more or less "it does what it does").  In particular, this should 
address various issues related to DB discovery, such that product 
authors can write tools to help query generators assemble queries, etc, 
so the end user does not have to be too sophisticated in the knowledge 
of the schema or SQL.   This does not mean that the revised code will 
USE the features, as much as it does that it forms a better foundation.

However, much of the time, this means finding RDBMS abstractions that 
hide nuances of the various underlying implementations, and that is 
often highly problematic.  I'd like to be able to see session-correlated 
connection pooling, for example -- so you could have a per-user 
connection to the RDBMS (given certain constraints, anyway) rather than 
per-thread.