Reorganize code for more granular imports

This commit is contained in:
2025-02-26 10:34:25 +02:00
parent 8350e106d6
commit ca008b0796
23 changed files with 1549 additions and 1232 deletions

View File

@@ -1,53 +1,24 @@
package db
const (
SQL_SELECT_RANDOM_UNVISITED_SNAPSHOTS = `
SELECT *
FROM snapshots
WHERE response_code IS NULL
AND error IS NULL
ORDER BY RANDOM()
FOR UPDATE SKIP LOCKED
LIMIT $1
`
SQL_SELECT_RANDOM_URLS_UNIQUE_HOSTS = `
SELECT url
FROM urls u
WHERE u.id IN (
SELECT MIN(id)
FROM urls
GROUP BY host
SELECT id FROM (
SELECT id, ROW_NUMBER() OVER (PARTITION BY host ORDER BY id) as rn
FROM urls
) t
WHERE rn <= 3
)
LIMIT $1
`
SQL_SELECT_RANDOM_UNVISITED_SNAPSHOTS_UNIQUE_HOSTS = `
SELECT *
FROM snapshots s
WHERE response_code IS NULL
AND error IS NULL
AND s.id IN (
SELECT MIN(id)
FROM snapshots
WHERE response_code IS NULL
AND error IS NULL
GROUP BY host
)
ORDER BY RANDOM()
FOR UPDATE SKIP LOCKED
LIMIT $1
`
SQL_SELECT_UNVISITED_SNAPSHOTS_UNIQUE_HOSTS = `
SELECT *
FROM snapshots s
WHERE response_code IS NULL
AND error IS NULL
AND s.id IN (
SELECT MIN(id)
FROM snapshots
WHERE response_code IS NULL
AND error IS NULL
GROUP BY host
)
`
SQL_SELECT_RANDOM_URLS = `
SELECT url
FROM urls u
ORDER BY RANDOM()
FOR UPDATE SKIP LOCKED
LIMIT $1
`
@@ -90,4 +61,7 @@ RETURNING id
VALUES (:url, :host, :timestamp)
ON CONFLICT (url) DO NOTHING
`
SQL_DELETE_URL = `
DELETE FROM urls WHERE url=$1
`
)