

A general API for relational joins - lelf
http://www.haskellforall.com/2014/12/a-very-general-api-for-relational-joins.html

======
etrain
Cool read - but you should be careful modeling Tables as things with an "id".
The relational algebra is about _sets_ of tuples. The fact that there is an
index that one can use to make joins go faster is an (important)
implementation detail but divorced from the data model.

The fact that these are sets is an important distinction and enables things
like predicate pushdown and other important optimizations. Would be
interesting to see a Selinger-style cost-based optimizer built in Haskell!

~~~
Gabriel439
The only reason I chose `Table` was just not to reuse the word `Map`. I agree
that there should be a separate abstraction for unindexed sets of tuples. I
probably should have called it `IndexedTable` or something.

------
protomyth
Offtopic (because I cannot get to the topic) - why does Barracuda classify
www.haskellforall.com as "Illegal Drugs"?

~~~
tome
Learning Haskell can alter your brain permanently. Just say no!

