[SQLObject] More fun in CVS (DBM backend)
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: Ian B. <ia...@co...> - 2003-04-07 01:27:48
|
I just commit a bunch of changes that moved all the SQL out of SQLObject.py, now all in SQLBuilder and DBConnection. To test the flexibility of this, I created a DBM backend, i.e., non-SQL. It has much of the functionality of the other databases, but probably has some bad performance issues, since there's no indexing except on ID (though that can be fixed). The neat part is you can even use .select(), so long as you use SQLBuilder instead of creating the SQL yourself. Without indexes (or a query optimizer) it essentially evaluates the expression for every possible combination of rows, but for a significant number of queries this isn't any worse than a RDBMS would do. Besides amusing me, and proving the potential of SQLBuilder/SQLObject as a storage abstraction layer (since this is a significantly different sort of storage), this also can be useful to make SQLObject-based applications easy to install, with no dependencies (in return for decreased performance). Of course, SQLite and the not-yet-supported Gadfly (no doubt easy to support) have similar intentions. But I do this in ~375 lines of code, which I think is smaller than either of those :) -- I suspect the lack of SQL parsing is the biggest reason for simplicity. And the lack of indexing :) But someday... Having done all this, I'm going to start working on getting a release together. There's some Postgres and SQLite things that need to be fixed, and then it should be ready. Ian |