Ce projet a été initialement commencé dans une issue le 2024-03-08.
Sur un modèle de données SQL qui implémente un système de tags
comme celui décrit ici, je souhaite pouvoir appliquer des filtres qui ressemblent à ceci :
- a.
tag_a or tag_b
- b.
tag_a and tag_b
- c.
tag_a and (not tag_b)
- d.
(tag_a and tag_b) or (tag_c and tag_d)
- …
Voici à quels filtres (where
) SQL peuvent ressembler ces filtres :
- a.
WHERE contacts.tags && (SELECT ARRAY_AGG(id) FROM contact_tags WHERE name = ANY(ARRAY['tag_a', 'tag_b'])
- b.
WHERE contacts.tags @> (SELECT ARRAY_AGG(id) FROM contact_tags WHERE name = ANY(ARRAY['tag_a', 'tag_b'])
- c.
WHERE
(contacts.tags && (SELECT ARRAY_AGG(id) FROM contact_tags WHERE name = ANY(ARRAY['tag_a'])) AND
(NOT (contacts.tags && (SELECT ARRAY_AGG(id) FROM contact_tags WHERE name = ANY(ARRAY['tag_a'])))
- d.
WHERE
(contacts.tags && (SELECT ARRAY_AGG(id) FROM contact_tags WHERE name = ANY(ARRAY['tag_a', 'tag_b'])) OR
(contacts.tags && (SELECT ARRAY_AGG(id) FROM contact_tags WHERE name = ANY(ARRAY['tag_c', 'tag_d']))
Questions que je me pose :
- Existe-t-il un “langage” de query de tag sur lequel je pourrais me baser ?
- Existe-t-il un parser qui me permettrait de transformer ma query de filtre en SQL ?
Todo :
- Essayer de dresser une liste de langages de query, quelques idées où chercher :
- Des moteurs de recherche :
- Duckduckgo
- Algolia
- Melisearch
- …
- Prometheus
- Loki
- GitLab
- GitHub
- Jira
- Lobster
- Des moteurs de recherche :
- Poster un billet de recherche sur
- Subreddit Postgres ⇒ https://old.reddit.com/r/PostgreSQL/comments/1bb6qvj/need_advice_on_how_to_convert_a_filter_string/?
- Subreddit Javascript ⇒ https://old.reddit.com/r/javascript/comments/1bb8rr3/askjs_need_advice_on_how_to_convert_a_filter/
- Stackoverflow
-
Subreddit programming
- Publier sur sklein.xyz :