Files

35 lines
1.6 KiB
SQL
Raw Permalink Normal View History

-- ============================================================================
-- Migration 005 — exposer le rowid dans la vue de consultation
--
-- L'index FTS5 est à contenu externe : il se joint à la table `textes` par
-- `rowid`. Or une vue SQLite n'a pas de rowid propre, et `v_textes.rowid`
-- échoue avec « no such column ».
--
-- Sans cette colonne, l'application ne peut pas à la fois filtrer sur les
-- champs dérivés de la vue (`devant_cc`) et joindre l'index plein texte — soit
-- exactement ce que demande la recherche à facettes.
-- ============================================================================
DROP VIEW v_textes;
CREATE VIEW v_textes AS
SELECT
t.rowid AS rowid,
t.*,
(SELECT COUNT(*) FROM sources s WHERE s.texte_id = t.id) AS nb_sources,
(SELECT COUNT(*) FROM evenements e WHERE e.texte_id = t.id) AS nb_evenements,
CASE
WHEN t.statut = 'saisie_cc' THEN 1
WHEN EXISTS (SELECT 1 FROM decisions_cc d
WHERE d.texte_id = t.id
AND d.date_decision IS NULL
AND COALESCE(d.resultat, 'en_instance') = 'en_instance') THEN 1
WHEN EXISTS (SELECT 1 FROM evenements e
WHERE e.texte_id = t.id AND e.type_etape = 'saisine_cc')
AND NOT EXISTS (SELECT 1 FROM evenements e
WHERE e.texte_id = t.id AND e.type_etape = 'decision_cc')
AND t.statut <> 'promulguee' THEN 1
ELSE 0
END AS devant_cc
FROM textes t;