0ac5ff9e15
Test Query * depstextandclean * startedcleaningresult * resulttidyup * roundone * cleaning * unsyncedquery * startedtestsandsimplification * api * querytests * resultprocessortests * unittests * cleanup
36 lines
1.5 KiB
SQL
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; |