alphapapa / alphapapa/org-ql

Caching issues with relative time predicates

Offen
#115 1 Kommentar 0 Reaktionen 1 zugewiesene Person Beansprucht von @alphapapa Auf GitHub ansehen
bug
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.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.