mentat/query
Nick Alexander 79fa0994b3 Part 3: Handle ground. (#469) r=nalexander,rnewman
This version removes nalexander's lovely matrix code. It turned out
that scalar and tuple bindings are sufficiently different from coll
and rel -- they can directly apply as values in the query -- that
there was no point in jumping through hoops to turn those single
values into a matrix.

Furthermore, I've standardized us on a Vec<TypedValue>
representation for rectangular matrices, which should be much
more efficient, but would have required rewriting that code.

Finally, coll and rel are sufficiently different from each other
-- coll doesn't require processing nested collections -- that
my attempts to share code between them fell somewhat flat. I had
lots of nice ideas about zipping together cycles and such, but
ultimately I ended up with relatively straightforward, if a bit
repetitive, code.

The next commit will demonstrate the value of this work -- tests
that exercised scalar and tuple grounding now collapse down to
the simplest possible SQL.
2017-06-09 20:18:31 -07:00
..
src Part 3: Handle ground. (#469) r=nalexander,rnewman 2017-06-09 20:18:31 -07:00
Cargo.toml Pre: fix query/Cargo.toml indenting. 2017-02-23 18:31:57 -08:00
README.md Add query sub-crate, implementing more of the beginnings of the query language. 2017-01-09 12:31:57 -08:00

This sub-crate implements the core types used by the query parser, translator, and executor — variables, find specifications, etc.

The edn sub-crate implements some even lower-level types, such as Keyword.