widgettdc-api / data /dIV /validate-ministry-fixes.sql
Kraft102's picture
fix: sql.js Docker/Alpine compatibility layer for PatternMemory and FailureMemory
5a81b95
-- Validation queries for v1.32 ministry and government view fixes
-- GitHub Issue: #7884
-- Purpose: Verify that fixes work correctly
\echo '============================================================================'
\echo 'VALIDATION: v1.32 Ministry and Government View Fixes'
\echo 'GitHub Issue: #7884'
\echo '============================================================================'
\echo ''
-- ============================================================================
-- 1. Test government proposals view (FIXED in v1.32)
-- ============================================================================
\echo '1. Testing view_riksdagen_goverment_proposals...'
\echo 'Expected: Should return >0 rows if government proposals exist'
\echo ''
SELECT
COUNT(*) AS total_proposals,
MIN(made_public_date) AS earliest_proposal,
MAX(made_public_date) AS latest_proposal,
COUNT(DISTINCT org) AS unique_organizations
FROM view_riksdagen_goverment_proposals;
\echo ''
\echo 'Status: If total_proposals > 0, view is WORKING'
\echo 'Status: If total_proposals = 0, check document_data for PROP/prop documents'
\echo ''
-- ============================================================================
-- 2. Test ministry effectiveness trends view
-- ============================================================================
\echo '2. Testing view_ministry_effectiveness_trends...'
\echo 'Expected: Should return >0 rows if ministry data exists'
\echo ''
SELECT
COUNT(*) AS total_records,
COUNT(DISTINCT org_code) AS unique_ministries,
MIN(period_start) AS earliest_period,
MAX(period_start) AS latest_period,
SUM(documents_produced) AS total_documents
FROM view_ministry_effectiveness_trends;
\echo ''
\echo 'Status: If total_records > 0, view is WORKING'
\echo 'Status: If total_records = 0, run diagnose-ministry-views.sql'
\echo ''
-- ============================================================================
-- 3. Test ministry productivity matrix view
-- ============================================================================
\echo '3. Testing view_ministry_productivity_matrix...'
\echo 'Expected: Should return >0 rows if ministry annual data exists'
\echo ''
SELECT
COUNT(*) AS total_records,
COUNT(DISTINCT org_code) AS unique_ministries,
MIN(year) AS earliest_year,
MAX(year) AS latest_year,
SUM(documents_produced) AS total_documents
FROM view_ministry_productivity_matrix;
\echo ''
\echo 'Status: If total_records > 0, view is WORKING'
\echo 'Status: If total_records = 0, run diagnose-ministry-views.sql'
\echo ''
-- ============================================================================
-- 4. Test ministry risk evolution view
-- ============================================================================
\echo '4. Testing view_ministry_risk_evolution...'
\echo 'Expected: Should return >0 rows if ministry quarterly data exists'
\echo ''
SELECT
COUNT(*) AS total_records,
COUNT(DISTINCT org_code) AS unique_ministries,
MIN(assessment_period) AS earliest_period,
MAX(assessment_period) AS latest_period,
AVG(risk_score) AS avg_risk_score,
COUNT(*) FILTER (WHERE risk_severity IN ('HIGH', 'CRITICAL')) AS high_risk_count
FROM view_ministry_risk_evolution;
\echo ''
\echo 'Status: If total_records > 0, view is WORKING'
\echo 'Status: If total_records = 0, run diagnose-ministry-views.sql'
\echo ''
-- ============================================================================
-- 5. Summary of all 4 views
-- ============================================================================
\echo '============================================================================'
\echo 'SUMMARY: View Status After v1.32 Fixes'
\echo '============================================================================'
\echo ''
SELECT
'view_riksdagen_goverment_proposals' AS view_name,
(SELECT COUNT(*) FROM view_riksdagen_goverment_proposals) AS row_count,
CASE
WHEN (SELECT COUNT(*) FROM view_riksdagen_goverment_proposals) > 0
THEN '[OK] WORKING'
ELSE '[EMPTY] Check document_data'
END AS status
UNION ALL
SELECT
'view_ministry_effectiveness_trends',
(SELECT COUNT(*) FROM view_ministry_effectiveness_trends),
CASE
WHEN (SELECT COUNT(*) FROM view_ministry_effectiveness_trends) > 0
THEN '[OK] WORKING'
ELSE '[WARNING] EMPTY (data dependency - see diagnostics)'
END
UNION ALL
SELECT
'view_ministry_productivity_matrix',
(SELECT COUNT(*) FROM view_ministry_productivity_matrix),
CASE
WHEN (SELECT COUNT(*) FROM view_ministry_productivity_matrix) > 0
THEN '[OK] WORKING'
ELSE '[WARNING] EMPTY (data dependency - see diagnostics)'
END
UNION ALL
SELECT
'view_ministry_risk_evolution',
(SELECT COUNT(*) FROM view_ministry_risk_evolution),
CASE
WHEN (SELECT COUNT(*) FROM view_ministry_risk_evolution) > 0
THEN '[OK] WORKING'
ELSE '[WARNING] EMPTY (data dependency - see diagnostics)'
END
ORDER BY view_name;
\echo ''
\echo '============================================================================'
\echo 'Next Steps:'
\echo '============================================================================'
\echo ''
\echo 'If any ministry views show EMPTY:'
\echo '1. Run: psql -U cia_user -d cia -f diagnose-ministry-views.sql'
\echo '2. Check diagnostic output for root cause'
\echo '3. Review TROUBLESHOOTING_EMPTY_VIEWS.md ministry section'
\echo '4. Verify data sources:'
\echo ' - assignment_data has ministry assignments'
\echo ' - view_riksdagen_politician_document is refreshed'
\echo ' - Documents exist in 3-year window'
\echo ''
\echo 'If government proposals view shows EMPTY:'
\echo '1. Check: SELECT COUNT(*) FROM document_data WHERE UPPER(document_type) LIKE ''%PROP%'';'
\echo '2. If 0, import government proposal documents from Riksdagen API'
\echo '3. If >0, verify view definition includes case-insensitive filter'
\echo ''
\echo '============================================================================'
\echo 'Validation Complete'
\echo '============================================================================'