36 lines
1.4 KiB
SQL
36 lines
1.4 KiB
SQL
-- name: GetQueryConfig :one
|
|
SELECT id, config FROM queryConfigs where queryId = $1 and addedVersion >= $2 and COALESCE(removedVersion, $2 - 1) < $2;
|
|
|
|
-- name: GetQueryType :one
|
|
SELECT type FROM queries where id = $1;
|
|
|
|
-- name: DeprecateQuery :exec
|
|
INSERT INTO queryDeprecations (queryId) VALUES ($1);
|
|
|
|
-- name: IsQueryDeprecated :one
|
|
SELECT EXISTS (
|
|
SELECT 1 FROM queryDeprecations where queryId = $1 and removedAt is not null
|
|
);
|
|
|
|
-- name: GetQuery :one
|
|
SELECT q.id, q.type, q.activeVersion, c.config, ARRAY_AGG(r.requiredQueryId) AS requiredIds
|
|
FROM queries AS q
|
|
JOIN queryConfigs AS c ON q.id = c.queryId
|
|
JOIN requiredQueries AS r ON q.id = r.queryId
|
|
WHERE q.id = $1
|
|
and c.addedVersion >= q.activeVersion
|
|
and COALESCE(c.removedVersion, q.activeVersion - 1) < q.activeVersion
|
|
and r.addedVersion >= q.activeVersion
|
|
and COALESCE(r.removedVersion, q.activeVersion - 1) < q.activeVersion
|
|
GROUP BY q.id, c.config;
|
|
|
|
-- name: ListQueries :many
|
|
SELECT q.id, q.type, q.activeVersion, c.config, ARRAY_AGG(r.requiredQueryId) AS requiredIds
|
|
FROM queries AS q
|
|
JOIN queryConfigs AS c ON q.id = c.queryId
|
|
JOIN requiredQueries AS r ON q.id = r.queryId
|
|
WHERE c.addedVersion >= q.activeVersion
|
|
and COALESCE(c.removedVersion, q.activeVersion - 1) < q.activeVersion
|
|
and r.addedVersion >= q.activeVersion
|
|
and COALESCE(r.removedVersion, q.activeVersion - 1) < q.activeVersion
|
|
GROUP BY q.id, c.config; |