Caching issues with relative time predicates
- Vorherrschende Sprache
- Emacs Lisp
- Sterne
- 1.6k
- Forks
- 120
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Time-based predicates in org-ql interact poorly with the built-in caching behavior. Consider the predicate `'(scheduled :to today)`. If I open up emacs and run this query (in my personal workflow, via an org-ql-view), it works just fine. However, if that emacs instance stays open until tomorrow, the query results will be stale unless something else (an edit in an agenda file, for example) invalidates the cache).
My own workflow is only minimally affected by this at the moment, since I was primarily noticing this in one of my `org-ql-views`. So I replaced something like this
```elisp
'("Scheduled up to today"
:title "Scheduled up to today"
:buffers-files org-agenda-files
:query (scheduled :to today))
```
with something like this
```elisp
(cons "Scheduled up to today"
(lambda ()
(interactive)
(org-ql-search (org-agenda-files)
`(scheduled :to ,(format-time-string "%Y-%m-%d"))
:title "Scheduled up to today")))
```
However, this does seem like a more general problem.
Some thoughts/suggestions on how this could be resolved:
- Detect when relative time predicates' meanings have changed and invalidate the cache accordingly
- Resolve relative time values in queries to absolute time values some time before caching (essentially a more general version of what I did above)
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Bewertung
Dieses Issue wurde noch nicht bewertet.