aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/query/parser.go
AgeCommit message (Collapse)Author
2025-06-30Implement compiled query executionJP Appel
2025-06-28Add leveld optimization wrapperJP Appel
2025-06-26Improve compilation of clauses to sqlite3 SQLJP Appel
2025-06-26Move category and operator iteratorsJP Appel
2025-06-19Add multiple clause and tree level optimizationsJP Appel
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
2025-06-15Update tests and fix minor bugsJP Appel
2025-06-14Move clause tree optimizationsJP Appel
2025-06-13Add only child optimization to query parserJP Appel
2025-06-13Add bfs and dfs iterators for clause treesJP Appel
2025-06-10Add method to merge subtrees in a clause treeJP Appel
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))
2025-06-09Implement querylang parserJP Appel
2025-04-28Add document output formattingJP Appel
2025-04-27Large commit; many featuresJP Appel