Richard Newman
b693385495
Part 5: eliminate is_known_empty in favor of empty_because and an accessor.
2017-04-07 12:46:26 -07:00
Richard Newman
0639c94468
Part 2: implement simple or
.
2017-04-07 12:46:25 -07:00
Richard Newman
a5023c70cb
Use Rc for TypedValue, Variable, and query Ident keywords. ( #395 ) r=nalexander
...
Part 1, core: use Rc for String and Keyword.
Part 2, query: use Rc for Variable.
Part 3, sql: use Rc for args in SQLiteQueryBuilder.
Part 4, query-algebrizer: use Rc.
Part 5, db: use Rc.
Part 6, query-parser: use Rc.
Part 7, query-projector: use Rc.
Part 8, query-translator: use Rc.
Part 9, top level: use Rc.
Part 10: intern Ident and IdentOrKeyword.
2017-04-02 21:38:36 -07:00
Richard Newman
997df0b776
Part 1: introduce ColumnIntersection and ColumnAlternation.
...
This provides a limited form of OR and AND for column constraints, allowing
simple 'or-join' queries to be expressed on a single table alias.
2017-03-30 19:13:19 -07:00
Richard Newman
88df7b3b33
Correctly generate DISTINCT and LIMIT. ( #386 ) r=nalexander
2017-03-22 14:02:00 -07:00
Richard Newman
7024978517
Track ever-shrinking sets of types for variables, not a single type. ( #381 ) r=nalexander
2017-03-22 11:30:16 -07:00
Richard Newman
97749833d0
Algebrize and translate numeric constraints. ( #306 ) r=nalexander
2017-03-22 10:19:47 -07:00
Richard Newman
bf38105fef
( #362 ) Part 4: handle unknown attributes by expanding type codes. r=nalexander
...
Also, don't run any SQL at all if an algebrized query is known to return no results.
2017-03-08 17:44:27 -08:00
Richard Newman
e898df8842
Implement basic query limits. ( #361 ) r=nalexander
2017-03-08 17:41:42 -08:00
Richard Newman
85f3b79f75
Support a limited set of '.'-prefixed non-keyword symbols. ( #352 ) r=nalexander
...
This commit allows `.` and `...` to parse correctly as `PlainSymbol`.
Tests in edn, query-translator, and the top level have been added.
2017-03-06 15:01:19 -08:00
Richard Newman
70b112801c
Implement projection and querying. ( #353 ) r=nalexander
...
* Add a failing test for EDN parsing '…'.
* Expose a SQLValueType trait to get value_type_tag values out of a ValueType.
* Add accessors to FindSpec.
* Implement querying.
* Implement rudimentary projection.
* Export mentat_db::new_connection.
* Export symbols from mentat.
* Add rudimentary end-to-end query tests.
2017-03-06 14:40:10 -08:00
Richard Newman
d7f323d15d
Wire in the start of querying and error_chain at top level. ( #349 ) r=nalexander
2017-02-27 16:17:25 -08:00
Richard Newman
b2f22952c1
Convert mentat_sql to use error-chain. r=nalexander
2017-02-27 16:16:49 -08:00
Richard Newman
5e3cdd1fc2
Implement query-translator. ( #301 ) r=nalexander
2017-02-23 18:39:49 -08:00
Richard Newman
a10f68fdb7
Mark every project as being part of the workspace. r=nalexander
...
This allows `cargo test --all` to work.
2017-02-20 11:04:08 -08:00
Richard Newman
9ecd02ef95
Begin serializing queries to SQL. r=nalexander
2017-02-17 17:54:07 -08:00