widgettdc-api / data /dIV /analyze-view-dependencies.sql
Kraft102's picture
fix: sql.js Docker/Alpine compatibility layer for PatternMemory and FailureMemory
5a81b95
-- analyze-view-dependencies.sql
-- Generate view dependency analysis report
--
-- Purpose:
-- Analyzes the dependency graph for all views in the database,
-- showing which views depend on which tables and other views.
--
-- Usage:
-- Output to terminal:
-- psql -U postgres -d cia_dev -f service.data.impl/src/main/resources/analyze-view-dependencies.sql
--
-- Save to CSV file:
-- psql -U postgres -d cia_dev -f service.data.impl/src/main/resources/analyze-view-dependencies.sql -o view_dependencies.csv
--
-- Or use COPY redirection:
-- psql -U postgres -d cia_dev -f service.data.impl/src/main/resources/analyze-view-dependencies.sql > view_dependencies.csv
--
-- Output Format:
-- CSV with columns: dependent_schema, dependent_view, source_schema, source_object, source_type
\echo 'Generating view dependency analysis...'
\echo ''
COPY (
SELECT
dependent_ns.nspname AS dependent_schema,
dependent_view.relname AS dependent_view,
source_ns.nspname AS source_schema,
source_table.relname AS source_object,
CASE source_table.relkind
WHEN 'r' THEN 'TABLE'
WHEN 'v' THEN 'VIEW'
WHEN 'm' THEN 'MATERIALIZED VIEW'
ELSE source_table.relkind
END AS source_type
FROM pg_depend
JOIN pg_rewrite
ON pg_depend.objid = pg_rewrite.oid
JOIN pg_class AS dependent_view
ON pg_rewrite.ev_class = dependent_view.oid
JOIN pg_class AS source_table
ON pg_depend.refobjid = source_table.oid
JOIN pg_namespace dependent_ns
ON dependent_ns.oid = dependent_view.relnamespace
JOIN pg_namespace source_ns
ON source_ns.oid = source_table.relnamespace
WHERE dependent_view.relkind IN ('v', 'm')
AND source_table.relkind IN ('v', 'm', 'r')
AND pg_depend.deptype = 'n'
AND dependent_ns.nspname = 'public'
ORDER BY dependent_schema, dependent_view, source_object
) TO STDOUT WITH (FORMAT CSV, HEADER);
\echo ''
\echo 'View dependency analysis complete.'
\echo 'To save to file, use: psql -U postgres -d cia_dev -f analyze-view-dependencies.sql -o view_dependencies.csv'