[TransWarp] TableDM proof of concept, request for comments
Phillip J. Eby
pje at telecommunity.com
Thu Oct 9 19:10:56 EDT 2003
At 04:31 PM 10/9/03 -0500, darryl wrote:
> > At 12:36 PM 10/9/03 -0700, John Landahl wrote:
> >>See the attached tabledm.py for the code, and feel free to offer any
> >> criticism or suggestions.
> > A few issues I see:
> > * ID generation isn't multi-user safe; if two processes generate an ID
> > at the same time, one will fail.
>* This is a shortcoming of the ID generation in the bullitens sample app
>in general is it not?
It's fine for SQLite, which is what the bulletins app uses, as SQLite is
strictly single-user. And SQLite doesn't really offer any other mechanism
for doing this, I believe.
However, between you and John I've now realized that it's probably a bad
thing to have in the example! (It probably should at least have a comment
warning people not to do it with multi-user databases.)
>* Different RDBM's tend to have different methods of generating
>'autoincrement' fields that are (or might be) transaction safe so any
>classes that attempt to abstract this would have to take this into account
Yes, this is probably going to need some kind of ID-generation component
plugin, possibly with an extension to the existing ISQLConnection interface
so that DB connections can abstract this in some way.
The hard part about such an abstraction is that most databases have
seriously different ways to do this, and not just in the sense that the SQL
used is different. :(
More information about the PEAK