pg_stat_monitor/test_lifecycle.sql

67 lines
2.0 KiB
SQL

-- Integration test for pg_stat_monitor low-memory fork
-- Tests table export functionality, API compatibility, and memory configuration
-- Reset stats and verify clean state
SELECT pg_stat_monitor_reset();
-- Wait briefly for bucket to initialize
\! sleep 1
-- Generate some test queries to capture
SET pg_stat_monitor.pgsm_track_utility = on;
SELECT count(*) FROM pg_tables WHERE schemaname = 'public';
SELECT 'lifecycle test query' as test_message, current_timestamp;
-- Verify table structure matches expected API
\d pg_stat_monitor
-- Test key column existence
SELECT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_name = 'pg_stat_monitor' AND column_name = 'bucket'
) as has_bucket_column;
SELECT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_name = 'pg_stat_monitor' AND column_name = 'cmd_type_text'
) as has_cmd_type_text_column;
-- Test export function exists and is callable
SELECT EXISTS (
SELECT 1 FROM pg_proc
WHERE proname = 'pg_stat_monitor_export'
) as export_function_exists;
-- Verify expected column count (should be 72 columns total)
SELECT count(*) as total_columns
FROM information_schema.columns
WHERE table_name = 'pg_stat_monitor';
-- Test that queries are being captured in memory
SELECT CASE
WHEN EXISTS (
SELECT 1 FROM pg_stat_monitor_internal()
WHERE query LIKE '%lifecycle test query%'
)
THEN 'SUCCESS: Queries captured in memory'
ELSE 'ERROR: No queries found in memory'
END as capture_status;
-- Test export function is callable
SELECT CASE
WHEN pg_stat_monitor_export() >= 0
THEN 'Export function callable: YES'
ELSE 'Export function callable: NO'
END as export_function_test;
-- Verify bucket system is working
SELECT CASE
WHEN count(*) > 0
THEN 'SUCCESS: Bucket system working'
ELSE 'ERROR: No buckets found'
END as bucket_system_status
FROM pg_stat_monitor_internal()
WHERE bucket_start_time IS NOT NULL;
-- Final success message
SELECT 'SUCCESS: Simplified codebase maintains full compatibility and functionality' as message;