-- ============================================================================ -- 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;