Files
query-orchestration/database/migrations/00000000000100_query_views.up.sql
T
Michael McGuinness 0ac5ff9e15 Merged in feature/testquery (pull request #39)
Test Query

* depstextandclean

* startedcleaningresult

* resulttidyup

* roundone

* cleaning

* unsyncedquery

* startedtestsandsimplification

* api

* querytests

* resultprocessortests

* unittests

* cleanup
2025-01-29 11:52:37 +00:00

36 lines
1.5 KiB
SQL

CREATE VIEW fullActiveQueries AS
SELECT DISTINCT
q.id, q.type, q.activeVersion, q.latestVersion,
coalesce(c.config, null) as config,
coalesce(
ARRAY_AGG(r.requiredQueryId)
FILTER (WHERE r.requiredQueryId != '00000000-0000-0000-0000-000000000000')::uuid[],
array[]::uuid[]
)::uuid[] as requiredIds
FROM queries AS q
LEFT JOIN queryConfigs AS c ON q.id = c.queryId
and q.activeVersion >= c.addedVersion
and q.activeVersion < COALESCE(c.removedVersion, q.activeVersion + 1)
LEFT JOIN requiredQueries AS r ON q.id = r.queryId
and q.activeVersion >= r.addedVersion
and q.activeVersion < COALESCE(r.removedVersion, q.activeVersion + 1)
GROUP BY q.id, q.type, q.activeversion, q.latestversion, c.config;
CREATE VIEW queryActiveDependencies AS
WITH RECURSIVE queryActiveDependencies AS (
SELECT q.id, r.requiredQueryId
FROM queries AS q
LEFT JOIN requiredQueries AS r ON q.id = r.queryId
and q.activeVersion >= r.addedVersion
and q.activeVersion < COALESCE(r.removedVersion, q.activeVersion + 1)
UNION ALL
SELECT qd.id, r.requiredQueryId
FROM queries AS q
LEFT JOIN requiredQueries AS r ON q.id = r.queryId
and q.activeVersion >= r.addedVersion
and q.activeVersion < COALESCE(r.removedVersion, q.activeVersion + 1)
JOIN queryActiveDependencies as qd on q.id = qd.requiredQueryId
)
SELECT DISTINCT id, requiredQueryId FROM queryActiveDependencies;