mentat/query-algebrizer/src
Richard Newman 08d2c613a4 Part 2: expand the definition of a table to include computed tables.
This commit:

- Defines a new kind of column, distinct from the eavt columns in
  `DatomsColumn`, to model the rows projected from subqueries. These
  always name one of two things: a variable, or a variable's type tag.
  Naturally the two cases are thus `Variable` and `VariableTypeTag`.
  These are cheap to clone, given that `Variable` is an `Rc<String>`.
- Defines `Column` as a wrapper around `DatomsColumn` and
  `VariableColumn`. Everywhere we used to use `DatomsColumn` we now
  allow `Column`: particularly in constraints and projections.
- Broadens the definition of a table list in the intermediate
  "query-sql" representation to include a SQL UNION. A UNION is
  represented as a list of queries and an alias.
- Implements translation from a `ComputedTable` to the query-sql
  representation. In this commit we only project vars, not type tags.

Review comment: discuss bind_column_to_var for ValueTypeTag.
Review comment: implement From<Vec<T>> for ConsumableVec<T>.
2017-04-12 19:21:33 -07:00
..
clauses Part 2: expand the definition of a table to include computed tables. 2017-04-12 19:21:33 -07:00
errors.rs Use Rc for TypedValue, Variable, and query Ident keywords. (#395) r=nalexander 2017-04-02 21:38:36 -07:00
lib.rs Part 2: expand the definition of a table to include computed tables. 2017-04-12 19:21:33 -07:00
types.rs Part 2: expand the definition of a table to include computed tables. 2017-04-12 19:21:33 -07:00
validate.rs Use Rc for TypedValue, Variable, and query Ident keywords. (#395) r=nalexander 2017-04-02 21:38:36 -07:00