[w3c/IndexedDB] Combining cursors / query execution engine (#298)

We have received many requests for implementing "joins". I think the way to go is to build a query executor, and ask applications to bring their own query planner and optimizer.

Conceptually, the query executor would be a new way to create cursors, which takes in an execution plan. The execution plan is an AST-like tree, where the leaves are today's cursor-creating operations, and inner nodes are operations.

A leaf has a source (object store or index) and a range (IDBKeyRange or key).

Inner node examples:
* reverse (unary)
* cross product (binary)
* hash join (binary)
* skip every N (unary)
* limit to N (unary)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/IndexedDB/issues/298

Received on Friday, 20 September 2019 05:56:00 UTC