[elephant-devel] get-instance-by-value where value is a list

Ian Eslick eslick at media.mit.edu
Fri Sep 26 20:43:41 UTC 2008


Currently none of the stores support comparing lists.  I think we  
could add this to the BDB backend, but it would require a change in  
the way that lists are serialized that wouldn't be backwards  
compatible.  Even if we did it for BDB, I don't think we can do it for  
the postmodern or CL-SQL stores.

Unfortunately strings are the only unbounded data item that can be  
correctly compared by all stores.  Consequently, they are the only way  
to store lists in indexed slots and get the expected behavior.

Think of this re-encoding as a means to generate a signature for a  
class of objects that is guaranteed to have the same total order as  
the original objects under lisp 'equal.

Sometimes the elegance of the hack depends on how you look at it.  :)

Ian

On Sep 26, 2008, at 4:26 PM, Frank Schorr wrote:

> (using ele version 0.9 on lispworks/win32)
>
> I'm storing a list in an indexed slot of a persistent object.  
> Retrieving the object with
> get-instance-by-value, where value is #'equal to the stored list,  
> does not seem to work.
>
> One could print the list to a string and use the string for  
> indexing, but I believe there
> is a better "design pattern".
>
> How do you store (nested) lists in indexed slots ?
>
>
> Thank you for your help.
>
> Frank
>
> _______________________________________________________________________
> Jetzt neu! Schützen Sie Ihren PC mit McAfee und WEB.DE. 30 Tage
> kostenlos testen. http://www.pc-sicherheit.web.de/startseite/? 
> mc=022220
>
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel




More information about the elephant-devel mailing list