> I haven't had a chance to play with your code yet but at first glance
> it looks good. Does the above mean that all set operations are
> automatically supported and the accelerated?

Unfortunately not for all operations. For example, clojure.set/join
uses its own index function, which builds an index for every join
invokation. On the other hand, difference, union and intersection use
the primary-key index (through .equals), which may be a bit faster
than hashing whole tuples.

> Do you think it is possible to implement join/union etc so that they
> produce lazy relations (or just lazy-seq of rows)? That would be very
> useful in many common use cases (instead of cursors).

I tried it once, but I was too ambigious. Providing lazy relations and
hiding the implementation details (SQL or clojure) while wrapping it
in a relational algebra API just didn't work out to be practical :).
Maybe that snippet is a good foundation to start a more humble
approach.

But with clojure you get already a general-purpose, lazy select and
project
operations (filter and map). Adding lazy joins and set-operations
isn't
that hard. Making them efficient beyond basic index usage is harder.

> As for the storage persistence - that's a low priority (at least for
> me), but it would be good to have at least some method for tying a
> relation to such storage (like a "tie" function in Perl).

> Can you tell me more about these hooks to Clojure STM and Cells?

Currently, there are no Hooks, and Cells are just an idea:

http://www.assembla.com/wiki/show/clojure/Cells
http://groups.google.com/group/clojure/browse_thread/thread/aa22a709501a64ac

Erik

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to