mentat/query-projector
Richard Newman 833ff92436
Simple aggregates. (#584) r=emily
* Pre: use debugcli in VSCode.
* Pre: wrap subqueries in parentheses in output SQL.
* Pre: add ExistingColumn.

This lets us make reference to columns by name, rather than only
pointing to qualified aliases.

* Pre: add Into for &str to TypedValue.
* Pre: add Store.transact.
* Pre: cleanup.
* Parse and algebrize simple aggregates. (#312)
* Follow-up: print aggregate columns more neatly in the CLI.
* Useful ValueTypeSet helpers.
* Allow for entity inequalities.
* Add 'differ', which is a ref-specialized not-equals.
* Add 'unpermute', a function for getting unique, distinct pairs from bindings.
* Review comments.
* Add 'the' pseudo-aggregation operator.

This allows for a corresponding value to be returned when a query
includes one 'min' or 'max' aggregate.
2018-03-12 15:18:50 -07:00
..
src Simple aggregates. (#584) r=emily 2018-03-12 15:18:50 -07:00
tests Simple aggregates. (#584) r=emily 2018-03-12 15:18:50 -07:00
Cargo.toml Simple aggregates. (#584) r=emily 2018-03-12 15:18:50 -07:00
README.md Implement projection and querying. (#353) r=nalexander 2017-03-06 14:40:10 -08:00

This module handles the derivation from an algebrized query of two things:

  • A SQL projection: a mapping from columns mentioned in the body of the query to columns in the output.
  • A Datalog projection: a function that consumes rows of the appropriate shape (as defined by the SQL projection) to yield one of the four kinds of Datalog query result.

These two must naturally coordinate, and so they are both produced here.