org-roam-ui
org-roam-ui copied to clipboard
[BUG] Only one tag showing in interface.
Describe the bug
Only the first tag listed in filetags
is shown in the interface.
To Reproduce Which specific things did you do which lead to said bug? E.g. what did you click, which commands did you call, etc.
- Create a file with more than one. ex.
#+filetags: :aws:ecs:
- Open in UI
Expected behavior Show all tags in pill bar.
Screenshots
What browser were you using? Firefox and Safari
I'm experiencing the same behavior. org-roam-ui package version is 20221105.1040
Same... org-roam-ui -- 20221105.1040 emacs -- 29.0.92
OK, man. Just downgrade your Emacs version from 29 to 28. That's solved my problem.
Same issue Emacs 29.1, I unfortunately can't downgrade to 28. Is there any other workaround for this?
Having same issue on:
Version: Emacs 29.1
OS: arch
Hopefully it'll fixed on Emacs-29.1 soon
I believe this is a bug with the way org-roam initilises/uses the sqlite-builtin db connector, the issue with tags happens in the org-roam-ui--get-nodes
function of org-roam-ui.el. When setting the value of org-roam-database-connector
to 'sqlite-builtin
the function within the query that concatenates tags does not work. To fix this, customise the value for org-roam-database-connector
to 'sqlite
.
The issue is that the group-concat
function is not working and only returns a single result rather than a concatenated set.
(defun org-roam-ui--get-nodes ()
"."
(org-roam-db-query [:select [id
file
title
level
pos
olp
properties
(funcall group-concat tag
(emacsql-escape-raw \, ))]
:as tags
:from nodes
:left-join tags
:on (= id node_id)
:group :by id]))
I have also tested this query by writing the sql as a string and passing that into org-roam-db-query
with the same results.
I do not believe the issue is within emacs-sqllite or emacs-sqlite-builtin packages though as I have used both of them directly and the (funcall group-concat tag (emacsql-escape-raw \, ))
part of the query returns concatenated tags. The sql statement will only return a single tag (not concatenation) only when the the org-roam
db connector is set to `'sqlite-builtin' and the query is run via org-roam. I shall raise this bug there and link to this issue.
Having the same issue in Emacs 29.1
(via Doom) on OpenBSD 7.4
.
Any filtering operations attempted on a node with multiple tags will only work on the first listed tag.
In other words, if the tag line looks like #+filetags: :tag1:tag2:
, then any attempt in org-roam-ui to filter out nodes tagged with tag1
works, but trying to filter by tag2
does not.
IOW, only the first tag is recognised.
I understand the cause of the bug is known. Any chance it'll be fixed soon?
Same issue Emacs 29.1, I unfortunately can't downgrade to 28. Is there any other workaround for this?
I found a temporary solution - switched the connector to sqlite
.
(org-roam-database-connector 'sqlite)
Same issue Emacs 29.1, I unfortunately can't downgrade to 28. Is there any other workaround for this?
I found a temporary solution - switched the connector to
sqlite
.(org-roam-database-connector 'sqlite)
This works for me too, I did the following,
(setq org-roam-database-connector 'sqlite)
Same problem here, changing to sqlite
as @yarikus mentioned works. Thanks.
The problem I was having as others may have experienced is not all tags are
appearing when using Add tag to tag allowlist
and entering code
.
For example this will show pandoc linked to code.
#+TITLE: Pandoc
#+FILETAGS: :code:pandoc:
This will not work, only code will show up but pandoc node will not:
#+TITLE: Pandoc
#+FILETAGS: :pandoc:code:
when switching to the SQLite now it makes org roam sync $A LOT$ longer than usual every time that i sync.
so ill just stick towards built-in until its fixed.