Richard Newman
7db74953d6
mentat_core doesn't need rusqlite. r=nalexander
2017-02-08 17:34:17 -08:00
Jordan Santell
21f7bdf493
Consolidate Entity::{Add, Retract} to Entity::AddOrRetract. Fixes #255 . r=nalexander ( #265 )
2017-02-08 15:45:09 -08:00
Jordan Santell
688a644bd9
Ensure :db/index true for :db/unique _. Fixes #254 . r=nalexander ( #267 )
2017-02-08 15:26:45 -08:00
Jordan Santell
9fcf9f3318
Remove Entity::{RetractEntity, RetractAttribute} for now. Fixes #257 . r=nalexander ( #266 )
2017-02-08 15:19:47 -08:00
Richard Newman
c111d4daff
Move TypedValue into mentat_core. r=jsantell,nalexander
2017-02-08 14:20:10 -08:00
Nick Alexander
afafcd64a0
[tx] Start implementing bulk SQL insertion algorithms ( #214 ). r=rnewman,jsantell
...
* Pre: Add some value conversion tests.
This is follow-up to earlier work. Turn TypedValue::Keyword into
edn::Value::NamespacedKeyword. Don't take a reference to
value_type_tag.
* Pre: Add repeat_values.
Requires itertools, so this commit is not stand-alone.
* Pre: Expose the first transaction ID as bootstrap::TX0.
This is handy for testing.
* Pre: Improve debug module.
* Pre: Bump rusqlite version for https://github.com/jgallagher/rusqlite/issues/211 .
* Pre: Use itertools.
* Start implementing bulk SQL insertion algorithms. (#214 )
This is slightly simpler re-expression of the existing Clojure
implementation.
* Post: Start generic data-driven transaction testing. (#188 )
* Review comment: `use ::{SYMBOL}` instead of `use {SYMBOL}`.
* Review comment: Prefer bindings_per_statement to values_per_statement.
2017-02-08 14:04:32 -08:00
Victor Porof
c585715224
Don't depend on num and ordered-float in the db and query crates, r=ncalexan ( #223 )
...
Signed-off-by: Victor Porof <victor.porof@gmail.com>
2017-02-08 12:19:16 +01:00
Victor Porof
4d83aafa2a
Ensure printing/parsing edn strings is isomorphic
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-04 08:47:48 +01:00
Victor Porof
a627f532f0
Relax whitespace rules for edn vectors, lists, sets and maps
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-04 08:45:31 +01:00
Victor Porof
419db388da
Relax whitespace rules for Infinity and NaN
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-04 08:45:02 +01:00
Richard Newman
00c99196a2
Move db::type::{ValueType,Attribute} into a mentat_core crate.
2017-02-03 17:01:30 -08:00
Jordan Santell
0b20d7691b
Parse and display EDN values for NaN, +Infinity and -Infinity. Fixes #232 ( #238 ) r=victorporof
2017-02-03 10:14:23 -08:00
Victor Porof
c038c11017
Consolidate edn peg rules to better parse keywords and symbols, r=ncalexan. Fixes #219
2017-02-03 09:08:24 +01:00
Victor Porof
9ee0ac8e00
Unify and generalize keywords and symbols parsing
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-03 09:06:42 +01:00
Victor Porof
72da5722ae
Update rustpeg to latest version and follow new syntax and formatting rules
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-03 09:06:42 +01:00
Victor Porof
611fbe2eef
Properly print null edn values as "nil", to allow for isomorphic write/parse
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-03 09:06:42 +01:00
Richard Newman
5b770a54cd
Parse basic :find and :where clauses. ( #211 ) r=nalexander
...
* Make Variable::from_symbol public.
* Implement basic parsing of queries.
* Use pinned dependencies the hard way to fix Travis.
* Bump ordered-float dependency to 0.4.0.
* Error coercions to use ?, and finishing the find interface.
2017-02-02 18:32:00 -08:00
Richard Newman
cd5f0d642c
Doc comment for ResultParser.
2017-02-02 15:23:24 -08:00
Victor Porof
707ce36236
Don't use single-character string constants in the is_backward
function
...
See https://github.com/Manishearth/rust-clippy/wiki#single_char_pattern for further info
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-02 19:55:29 +01:00
Richard Newman
5d74f1ee94
Add utilities for defining parsers. ( #218 ) r=vporof
...
satisfy_unwrap and ResultParser go into mentat_parser_utils.
2017-02-02 10:25:05 -08:00
Victor Porof
816a85f0a3
Write more tests, handle more types for printing and a few other code cleanups for edn types, r=jwalker ( #233 )
2017-02-02 17:23:07 +01:00
Victor Porof
9a5ece8c89
Handle more edn::Value types for printing, precursor for #195
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-02 17:22:58 +01:00
Victor Porof
2ecda0a2bd
Avoid needless reborrows and simplify Ord
implementation for edn::Value
2017-02-02 17:22:58 +01:00
Victor Porof
a685d6c541
Move edn test functions into a submodule
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-02 17:22:58 +01:00
Victor Porof
cc56cec11a
Add note about linked lists data type choice for edn::Value
2017-02-02 17:22:58 +01:00
Victor Porof
00048d1955
Remove edn::Pair
struct since it's not used anywhere
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-02 17:22:58 +01:00
Richard Newman
fcdf759399
Rename parser_utils to mentat_parser_utils, clean up imports. ( #234 ) r=vporof
2017-02-02 08:18:04 -08:00
Victor Porof
f3f353661f
Several small idiomatic changes to the edn crate, r=rnewman,jsantell
2017-02-02 11:00:35 +01:00
Victor Porof
4e9e8ed837
Use idiomatic enumerate
method on interators instead of iterating over indices
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-02 10:59:03 +01:00
Victor Porof
4b2c7870c0
Wrap code indicated by the "_" in documentation as suggested by rustdoc best practices
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-02 10:59:03 +01:00
Victor Porof
17bc85fe27
Remove return statements from edn parser tests
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-02 10:59:03 +01:00
Victor Porof
25474980b1
Add rustdoc comments for to_symbol
and to_keyword
functions
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-02 10:59:03 +01:00
Victor Porof
8f68f68378
Use idiomatic map_or_else
calls to Option<T> instead of double returns
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-02 10:59:03 +01:00
Victor Porof
85da91a0ab
Add helper functions constructing OrderedFloat and BigInt to edn crate, r=ncalexan,rnewman. Fixes #198
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-02 10:58:08 +01:00
Victor Porof
93053a4297
Add the parser_utils crate to .travis.yml
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-02 10:58:07 +01:00
Victor Porof
ba1896b684
Extract assert_parses_to into a parser utility crate, r=rnewman. Fixes #200
...
Signed-off-by: Victor Porof <vporof@mozilla.com>
2017-02-02 10:17:08 +01:00
Richard Newman
a9929249eb
Use Into<Option<>> trick for to_keyword and to_symbol.
2017-02-01 17:46:53 -08:00
Richard Newman
592dec7241
Implement a FromValue trait for SrcVar and Variable. ( #227 ) r=nalexander
2017-02-01 15:05:14 -08:00
Richard Newman
0b3387f8b9
Minor EDN cleanup. ( #217 ) r=jsantell
...
* to_reverse -> to_reversed.
* Add PlainSymbol::plain_name for examining $x and ?y.
* Fix comment.
2017-02-01 14:34:51 -08:00
Richard Newman
f1a55c9f12
Move query-parser test functions into a submodule.
2017-02-01 10:44:53 -08:00
Richard Newman
932a42866c
Fix comments in EDN crate.
2017-01-30 17:45:02 -08:00
Jordan Santell
00bb3e6d4a
Merge pull request #212 from mozilla/202
...
Add NamespacedKeyword::is_reverse and NamespacedKeyword::to_reverse f… r=nalexander
2017-01-30 17:22:44 -08:00
Jordan Santell
0a21b5dca4
Add NamespacedKeyword::{is_forward, is_backward, to_reverse} for
...
inspection in NamespacedKewyord for usage by query and transaction parsers. Fixes #202
2017-01-30 14:39:53 -08:00
Jordan Santell
359d356dd9
Merge pull request #213 from mozilla/199
...
Add Into<String> to symbol::* constructors. Fixes #199
2017-01-30 13:35:12 -08:00
Jordan Santell
0b87978830
Merge pull request #208 from mozilla/197
...
Add is_ methods to edn::Value types and add tests. Fixes #197 . r=nalexander
2017-01-30 09:37:26 -08:00
Jordan Santell
d116fd7bff
Add is_$type and as_$type methods to edn::Value types and add tests. Fixes #197
2017-01-30 09:35:33 -08:00
Jordan Santell
18279fdd3c
Add Into<String> to symbol::* constructors. Fixes #199
2017-01-28 22:53:40 -08:00
Richard Newman
c6fa14c0c8
Rudimentary printing of EDN values. ( #209 ) r=jsantell
...
* Add a little From helper for edn::parse::ParseError. Not used yet.
* Ignore more things.
* Partly implement Display for edn::Value.
2017-01-28 14:18:17 -08:00
Nick Alexander
506c83c160
Implement basic logging infrastructure. ( #205 ) r=nalexander,victorporof
...
Signed-off-by: Paul Lange <palango@gmx.de>
2017-01-26 10:43:48 -08:00
Nick Alexander
81af295948
Start installing SQL schema. ( #171 ) r=rnewman
...
* Start installing the SQLite store and bootstrapping the datom store.
* Review comment: Decomplect V2_IDENTS.
* Review comment: Decomplect V2_PARTS.
* Review comment: Pre: Expose Clojure's merge on Value instances.
* Review comment: Decomplect V2_SYMBOLIC_SCHEMA.
* Review comment: Decomplect V1_STATEMENTS.
* Review comment: Prefer ? to try!.
* Review comment: Fix typos; format; add TODOs.
* Review comment: Assert that Mentat `Schema` is valid upon creation.
* Review comment: Improve conversion to and from SQL values.
This patch factors the fundamental SQL conversion maps
between (rusqlite::Value, value_type_tag) and (edn::Value, ValueType)
through a new Mentat TypedValue. (A future patch might rename this
fundamental type mentat::Value.)
To make certain conversion functions infallible, I removed
placeholders for :db.type/{instant,uuid,uri}. (We could panic
instead, but there's no need to do that right now.)
* Review comment: Always uses bundled SQLite in rusqlite.
This avoids (runtime) failures in Travis CI due to old SQLite
versions. See 432966ac77
.
* Review comment: Move semantics in `from_sql_value_pair`.
* Review comment: DB_EXCISE_BEFORE_T instead of ...BEFORET (no underscore).
* Review comment: Move overview notes to the Wiki.
2017-01-25 16:13:56 -08:00