mentat/query-translator
Richard Newman a74a2deffc
Introduce RelResult rather than Vec<Vec<TypedValue>>. (#639) r=nalexander
* Pre: clean up core/src/lib.rs.
* Pre: use indexmap 1.0 in db and query-projector.
* Change rel results to be a RelResult instance, not a Vec<Vec<TypedValue>>.

This avoids memory fragmentation and improves locality by using a single
heap-allocated vector for all bindings, rather than a separate
heap-allocated vector for each row.

We hide this abstraction behind the `RelResult` type, which tracks the
stride length (width) of each row.

* Don't allocate temporary vectors when projecting RelResults.
2018-04-24 15:04:00 -07:00
..
src (query) Pre: Model columns that don't have type tags closer to Column. 2018-04-19 09:58:41 -07:00
tests Introduce RelResult rather than Vec<Vec<TypedValue>>. (#639) r=nalexander 2018-04-24 15:04:00 -07:00
Cargo.toml Partial work from simple aggregates work (#497) r=nalexander 2017-11-30 15:02:07 -08:00
README.md Begin serializing queries to SQL. r=nalexander 2017-02-17 17:54:07 -08:00

This crate turns an algebrized Datalog query into a domain-specific representation of a SQL query, and then uses mentat_sql to turn that into a SQL string to be executed.

This subsumes both planning and query construction, because in Mentat the SQL query is effectively a query plan.