mcollina/node-levelgraph — pull request #24 by mcollina (2013-07-02 23:23:39+00:00)
Title: Live join support

It seems about time to implement live join support. This is the proposed API:

```
var stream = db.joinStream([{
live: true, // works only on the first condition
subject: db.v('author1'),
predicate: 'maintains',
object: db.v('module'),
},
{
subject: db.v('module'),
predicate: 'depends',
object: db.v('module2')
},
{
subject: db.v('author2'),
predicate: 'maintains',
object: db.v('module2')
});
```

Note that the first `live` condition will just work on upcoming data, and the following will just be evaluated thanks to it.

Things that remains to do:
* [ ] basic join support
* [ ] test complex join situation
* [ ] extract a `db.live` API similar to `db.get`
* [ ] README
* [ ] throw an error if trying to do a live query through a non-streaming method.
* [ ] verify that a "live" condition is always at the top of the query plan.