aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2023-08-01 11:02:56 -0700
committerGravatar Tom Willemse2023-08-01 11:02:56 -0700
commitcff931be7e7239dbb5c8809312e91e5a18b6ed27 (patch)
treedca4c9a5e265ac411f19510dfd62ee862433db60
parent346f4598a57bafb65c29a002b20be0f3254db5e9 (diff)
downloademacs-config-cff931be7e7239dbb5c8809312e91e5a18b6ed27.tar.gz
emacs-config-cff931be7e7239dbb5c8809312e91e5a18b6ed27.zip
Speed up ‘oni-org-roam--books-to-read’
By doing more of the filtering in SQL rather than Emacs Lisp it got a bit faster.
-rw-r--r--oni-org-roam.el16
1 files changed, 8 insertions, 8 deletions
diff --git a/oni-org-roam.el b/oni-org-roam.el
index a2feefa..efee57e 100644
--- a/oni-org-roam.el
+++ b/oni-org-roam.el
@@ -4,7 +4,7 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 2023.0330.183039
+;; Version: 2023.0728.155508
;; Package-Requires: (oni-org org-roam)
;; This program is free software; you can redistribute it and/or modify
@@ -67,13 +67,13 @@
(not (string= state "FINISHED")))))
(defun oni-org-roam--books-to-read ()
- (seq-filter (lambda (item)
- (string= (map-elt (car item) "STATUS") "toread"))
- (org-roam-db-query [:select [nodes:properties nodes:file nodes:title]
- :from nodes
- :left-join tags
- :on (= tags:node-id nodes:id)
- :where (like tag (quote "%\"book\"%"))])))
+ (org-roam-db-query (concat "select properties, file, title, group_concat(tag) as node_tags "
+ "from nodes "
+ "left join tags on node_id=id "
+ "group by id "
+ "having node_tags like '%%\"book\"%%' "
+ "and node_tags like '%%\"unread\"%%' "
+ "order by title")))
(defun oni-org-roam-list-books-to-read ()
(interactive)