![Nick Alexander](/assets/img/avatar_default.png)
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.
22 lines
403 B
TOML
22 lines
403 B
TOML
[package]
|
|
name = "mentat_query_algebrizer"
|
|
version = "0.0.1"
|
|
workspace = ".."
|
|
|
|
[dependencies]
|
|
enum-set = { git = "https://github.com/rnewman/enum-set" }
|
|
error-chain = "0.8.1"
|
|
|
|
[dependencies.mentat_core]
|
|
path = "../core"
|
|
|
|
[dependencies.mentat_query]
|
|
path = "../query"
|
|
|
|
# Only for tests.
|
|
[dev-dependencies.mentat_query_parser]
|
|
path = "../query-parser"
|
|
|
|
[dev-dependencies]
|
|
itertools = "0.5"
|
|
maplit = "0.1"
|