John, Thank you for the quick reply.
I understand the complexity involved, and what we're looking for is the quick storage & retrieval of the underlying data - I'll look at the json/yaml serialization implementations. Best, Peter John Siracusa wrote: > On 12/4/06, Peter Leonard <[EMAIL PROTECTED]> wrote: >> A second RDBO question - Does RDBO play nicely with Storable? Can I >> freeze/thaw RDBO objects among various processes and get clean results? >> (In a serial fashion, of course - I would not try to make updates to >> the same object in several different places at once.) > > Freeze/thawing an unmodified RDBO-derived object will probably not do > what you want because each object has a back-pointer to the metadata > object for that class (which, in turn, has code references inside it). > When you thaw it, you may have already loaded that class, and will > therefore end up with two metadata objects for the same class, one of > which is "dangling" (i.e., not connected to the metadata "registry" > that knows how to look up the metadata object for each class). > > I've tried to implement Storable hooks for "db" (Rose::DB) objects, > mostly just to discard the DBI $dbh (which won't survive freeze/thaw > anyway), and that experience has shown me that Storable's hooks are > pretty limited. (Or maybe I'm just doing it wrong...) If anyone > wants to take a crack at making Storable hooks for RDBO that enable > safe, coherent freeze/thaw, by all means, take a crack at it :) > > In the meantime, I suggest looking at the various > serialization-related Helper methods like, column_values_as_json() and > column_values_as_yaml(), and their reverse methods, init_with_json() > and init_with_yaml() > > http://search.cpan.org/dist/Rose-DB-Object/lib/Rose/DB/Object/Helpers.pm > > Even if you don't use them, you can look at the implementation and > then make your own, similar methods that use Storable for > serialization instead. It should be quite simple. > > The basic idea is not to serialize the entire object, but instead just > serialize the column values. Deserialization then becomes simple > instantiation and init()ialization with the thawed column values (+/- > the futzing with column/method name mapping--again, check the code for > examples). > > (Serializing a "tree" of nested RDBO-derived objects could be done > using a similar approach for each object in the tree, plus a bit of > extra info detailing how to hook things back up later, but it'd be > considerably more complex than doing single objects. It's on my > long-term list...) > > -John > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Rose-db-object mailing list > Rose-db-object@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/rose-db-object ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Rose-db-object mailing list Rose-db-object@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rose-db-object