collectscollector

This commit is contained in:
Michael McGuinness
2024-12-19 19:49:40 +00:00
parent e5f59539df
commit 6b07844d46
9 changed files with 117 additions and 47 deletions
@@ -2,7 +2,7 @@ CREATE TABLE results (
id uuid primary key,
queryId uuid not null,
documentId uuid not null,
value TEXT,
value TEXT not null,
cleanVersion int not null,
textVersion int not null,
queryVersion int not null,
@@ -1,5 +1,5 @@
CREATE VIEW activeCollectorQueries AS
SELECT c.id, c.jobId, c.minCleanVersion, c.minTextVersion, c.activeVersion, cq.queryId
SELECT c.id as collectorId, c.activeVersion, cq.queryId
FROM collectors c
JOIN collectorQueries cq ON c.id = cq.collectorId
WHERE c.activeVersion >= cq.addedVersion AND c.activeVersion < COALESCE(cq.removedVersion, c.activeVersion + 1);
@@ -1,12 +1,12 @@
CREATE VIEW collectorQueryDependencyTree (id, jobId, type, requiredQueryId, queryVersion, minCleanVersion, minTextVersion) AS
CREATE VIEW collectorQueryDependencyTree (collectorId, queryId, type, requiredQueryId, queryVersion) AS
WITH RECURSIVE collectorQueryDependencyTree AS (
SELECT aqc.id, cq.jobId, aqc.type, aqc.requiredQueryId, aqc.activeVersion as queryVersion, cq.minCleanVersion, cq.minTextVersion
SELECT cq.collectorId, aqc.id, aqc.type, aqc.requiredQueryId, aqc.activeVersion as queryVersion
FROM activeQueryRequirements aqc
JOIN activeCollectorQueries cq ON cq.queryId = aqc.id
UNION ALL
SELECT q.id, acq.jobId, q.type, q.requiredQueryId, q.activeVersion as queryVersion, acq.minCleanVersion, acq.minTextVersion
SELECT acq.collectorId, q.id as queryId, q.type, q.requiredQueryId, q.activeVersion as queryVersion
FROM activeQueryRequirements q
JOIN collectorQueryDependencyTree acq on q.id = acq.requiredQueryId
)
+5 -2
View File
@@ -1,2 +1,5 @@
-- name: GetQueriesFromJobID :many
SELECT id, type, requiredQueryId, queryVersion, minCleanVersion, minTextVersion FROM collectorQueryDependencyTree WHERE jobId = $1;
-- name: GetCollectorQueries :many
SELECT collectorId, queryId, type, requiredQueryId, queryVersion FROM collectorQueryDependencyTree WHERE collectorId = $1;
-- name: GetCollectorFromJobID :one
SELECT id, jobId, minCleanVersion, minTextVersion FROM collectors WHERE jobId = $1 LIMIT 1;
+1 -1
View File
@@ -1,2 +1,2 @@
-- name: ListResultsByDocumentID :many
SELECT id, queryId, cleanVersion, textVersion, queryVersion FROM results where documentId = $1;
SELECT id, queryId, cleanVersion, textVersion, queryVersion FROM results where documentId = $1 and cleanVersion >= $2 and textVersion >= $3;