| Age | Commit message (Collapse) | Author |
|
|
|
Implement optimizations that can be called in parallel or serial.
Optimizations occur mostly in place and result in a logically equivalent
tree when used correctly.
Optimizations
=============
* Sort - sort all statements within a clause tree
* Simplify - apply negation rules to all statements
* Flatten - merge child clauses with parents
* Compact - merge equivalent statements
* Tidy^ - remove zero statements
* Contradictions - zero contradicting statements and clauses
* StrictEquality - zero fuzzy statements when exact statements are within
clause
* Tighten - combine multiple fuzzy statements to the least (AND) or
most (OR) restrictive bounds
^: when used incorrectly can turn an invalid clause tree into a valid
one
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Added support for the following
* Ignore unpassable dates
* Ignore parsing non-standard header keys
* Ignore errors while parsing non-standard header keys
|
|
|
|
|
|
|
|
|
|
Fixes unintended YAML decode errors when a documents has a valid header
but the rest of its contents are not valid YAML.
|
|
|
|
|
|
|
|
Add `Flatten` method to `query.Clause` which merges a parent clause with
its children.
The merge occurs if clauses have the same operator.
The merge transforms the tree similar to the examples below:
(+ (+ (+ (+ a b) c) d) e) -> (+ a b c d e)
(+ (+ a b) c (* d e)) -> (+ a b c (* d e))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parses `title` and `tags` fields using default behavior.
Custom parsing logic is used for `author` (single and multiauthor
support), `date` (parses into `time.Time`), and meta (collects all other
header fields into a YAML string).
|
|
|
|
|
|
|