On Thu, 2008-03-27 at 21:53 +0000, Matt S Trout wrote:
MojoMojo has a complete nested set implementation in the Page DBIC class.
DBIx::Class::Tree provides a suitable tree API.
There is a nested set branch of DBIx::Class::Tree which I will happily
give out commits bits to on request.
A bunch of you have asked about nested sets, tried to implement them
yourself, been told about this, started on ::Tree implementations, not
had time to carry on, got stuck, forgotten, then somebody else has asked.
Guilty as charged, your honor. I still have an half-backed
implementation of DBIx::Class::Tree::NestedSet laying around, that I've
almost forgotten about. In my defense, I'd stopped working on it because
I believe we'd need a good RDBMS-independent locking mechanism (and an
live object index for bonus points) for any nested-set implementation to
become production-ready. In difference to adjacency lists, nested sets
tend to die a horrible dead when used without a good locking strategy
Anybody who thinks they've got code that's a better starting point than the
MojoMojo stuff, yell.
Then we pick the best one we've got, and port it to provide the ::Tree API.
Tree API is mostly done. IIRC I even ported most of the tests from DBIC::Tree.
I'd just need a slow day at work to remove some of the cruft that resulted from
my stab at a home-grown object index, then I'll post it publicly. Until then
just drop me an email and I'll forward you the polluted tarball...