Caching issues with relative time predicates
- 主要語言
- Emacs Lisp
- 星號
- 1.6k
- 分支
- 120
- PR 合併指標
- 30 天內沒有已合併 PR
描述
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)
貢獻指南
這個儲存庫沒有索引到貢獻指南
評估
這個 Issue 還沒有評估資料。