[IndexedCatalog] IndexedCatalog status update
kiko at async.com.br
Thu Jun 26 23:46:24 BRST 2003
Just a quick note to describe what we've been hacking on lately. To
start off, Johan has (sadly for us) left Brazil for Sweden, and is
currently in the process of praying to be accepted in university (we
wish him luck). I've been doing most of the IC work the past two weeks,
and I'm now working with Johan to assure 0.6.0 is the best IC release so
Hint: I think the update_schema feature is *the* killer IC feature we
were looking for.
A lot has changed in CVS since 0.5.0 was released. How much exactly can
be seen using this magical link:
I'll summarize the news so you know what to expect in the next release:
- Shelf now offers an update_schemas method. This method causes all
Catalogs to update their schema (based on the _ic_options
attribute) to the latest version declared in the class, and
migrates objects into the new schema. It also offers a manual
function hook that you can add to your domain objects to do more
complex updates to them automatically.
This feature allows you to update the database without needing to
dump/restore or recreate your data, and was the #1 feature our
users at Async requested for months now.
- Util.py and parts of IndexedObject were rewritten in C by Nicholas
Henke, and further hacked into shape by Johan and me. This was a
nice speedup for certain mass-insertion cases.
- We have basic support for Python dictionaries as attributes.
- We now use signals internally to communicate important events in
the Catalog; this reduces the amount of state we need to carry
internally. We also introduced a Registry which stores shelves
indexed by ZODB connection (so setLocalTransaction works
- Objects can be created inside (catalog.new()) or outside catalogs
without any issues (0.5.0 shipped with some nasty regressions
here). Weak instances are also treated correctly.
- Our test suite was mostly reorganized/rewritten into saner
versions. The 50+ tests now offer pretty decent coverage for the
- The usual assorted bugfixes and oopsen.
I'm pushing so we can wrap up a release of IC, but I'd like to see
feedback on how we're doing and what you are looking for. I've got just
this last bug to fix.. <wink>
Christian Reis, Senior Engineer, Async Open Source, Brazil.
http://async.com.br/~kiko/ | [+55 16] 261 2331 | NMFL
More information about the IndexedCatalog