aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/query
AgeCommit message (Collapse)Author
2025-08-05Add headings category to query langJP Appel
2025-08-02Add initial todos for new heading categoryJP Appel
The heading category is planned to be backed by a single db text column. The column will be a concatenation of all ATX style heading matches, with a newline delimiter.
2025-07-28Resolve multiple todosJP Appel
2025-07-28Add yaml output formatJP Appel
2025-07-28Fix incorrect compiling of regex queries on set categoriesJP Appel
2025-07-28Add regex operatorJP Appel
Implemented regex operator using go flavored regular expressions. Added optimization to combine regex's in `OR` clauses.
2025-07-27Remove unimplemented external command operatorsJP Appel
Executing external commands against file metadata is a serious security risk. The desired features of most external commands can be safely implemented using SQLite native functions.
2025-07-23Implement basic server over unix datagramJP Appel
2025-07-22Separate program entry point from commandsJP Appel
2025-07-19Improve command documentation and query outputJP Appel
Add flags to change document and list separator in query output. Simplified cutom output format handling.
2025-07-18Add newline to default outputerJP Appel
2025-07-13Correct multi-doc json outputJP Appel
2025-07-02Add experimental http serverJP Appel
2025-07-02Add WriteTo like methods to Outputter interfaceJP Appel
The additional methods `OutputOneTo` and `OutputTo` allow outputting a document or documents directly to a writer.
2025-06-30Add filepath to searchable categoriesJP Appel
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-24Add first pass of query compilerJP Appel
2025-06-24Add tests and fix minor bugs for optimizierJP 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-15Identify lexer errorJP Appel
2025-06-15Update tests and fix minor bugsJP Appel
2025-06-15Add query optimizerJP 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-06-09Fix lookback error in lexerJP Appel
2025-05-28Add lexer for query dslJP Appel
2025-05-05Remembered switch statements existJP Appel
2025-05-02Implement json outputJP Appel
2025-04-28Add document output formattingJP Appel
2025-04-27Large commit; many featuresJP Appel