Extract out some functions from update-package-derivations-table
To allow these to be used independently.
This commit is contained in:
parent
639f24bb22
commit
69d95b133f
1 changed files with 49 additions and 28 deletions
|
|
@ -29,27 +29,13 @@
|
||||||
action time-taken)
|
action time-taken)
|
||||||
result))
|
result))
|
||||||
|
|
||||||
(define (update-package-derivations-table conn
|
(define (delete-guix-revision-package-derivation-entries conn
|
||||||
git-repository-id
|
git-repository-id
|
||||||
guix-revision-id
|
guix-revision-id
|
||||||
commit)
|
branch-name)
|
||||||
;; Lock the table to wait for other transactions to commit before updating
|
|
||||||
;; the table
|
|
||||||
(exec-query
|
(exec-query
|
||||||
conn
|
conn
|
||||||
"
|
"
|
||||||
LOCK TABLE ONLY package_derivations_by_guix_revision_range
|
|
||||||
IN SHARE ROW EXCLUSIVE MODE")
|
|
||||||
|
|
||||||
(for-each
|
|
||||||
(match-lambda
|
|
||||||
((branch-name)
|
|
||||||
(log-time
|
|
||||||
(simple-format #f "deleting package derivation entries for ~A" branch-name)
|
|
||||||
(lambda ()
|
|
||||||
(exec-query
|
|
||||||
conn
|
|
||||||
"
|
|
||||||
DELETE FROM package_derivations_by_guix_revision_range
|
DELETE FROM package_derivations_by_guix_revision_range
|
||||||
WHERE git_repository_id = $1 AND
|
WHERE git_repository_id = $1 AND
|
||||||
branch_name = $2 AND
|
branch_name = $2 AND
|
||||||
|
|
@ -60,15 +46,18 @@ WHERE git_repository_id = $1 AND
|
||||||
ON package_derivations.id = guix_revision_package_derivations.package_derivation_id
|
ON package_derivations.id = guix_revision_package_derivations.package_derivation_id
|
||||||
WHERE revision_id = $3
|
WHERE revision_id = $3
|
||||||
)"
|
)"
|
||||||
(list git-repository-id
|
(list git-repository-id
|
||||||
branch-name
|
branch-name
|
||||||
guix-revision-id))))
|
guix-revision-id
|
||||||
(log-time
|
branch-name)))
|
||||||
(simple-format #f "inserting package derivation entries for ~A" branch-name)
|
|
||||||
(lambda ()
|
(define (insert-guix-revision-package-derivation-entries conn
|
||||||
(exec-query
|
git-repository-id
|
||||||
conn
|
guix-revision-id
|
||||||
"
|
branch-name)
|
||||||
|
(exec-query
|
||||||
|
conn
|
||||||
|
"
|
||||||
INSERT INTO package_derivations_by_guix_revision_range
|
INSERT INTO package_derivations_by_guix_revision_range
|
||||||
SELECT DISTINCT
|
SELECT DISTINCT
|
||||||
$1::integer AS git_repository_id,
|
$1::integer AS git_repository_id,
|
||||||
|
|
@ -109,7 +98,39 @@ WINDOW package_version AS (
|
||||||
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
|
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
|
||||||
)
|
)
|
||||||
ORDER BY packages.name, packages.version"
|
ORDER BY packages.name, packages.version"
|
||||||
(list git-repository-id branch-name guix-revision-id))))))
|
(list git-repository-id
|
||||||
|
branch-name
|
||||||
|
guix-revision-id)))
|
||||||
|
|
||||||
|
(define (update-package-derivations-table conn
|
||||||
|
git-repository-id
|
||||||
|
guix-revision-id
|
||||||
|
commit)
|
||||||
|
;; Lock the table to wait for other transactions to commit before updating
|
||||||
|
;; the table
|
||||||
|
(exec-query
|
||||||
|
conn
|
||||||
|
"
|
||||||
|
LOCK TABLE ONLY package_derivations_by_guix_revision_range
|
||||||
|
IN SHARE ROW EXCLUSIVE MODE")
|
||||||
|
|
||||||
|
(for-each
|
||||||
|
(match-lambda
|
||||||
|
((branch-name)
|
||||||
|
(log-time
|
||||||
|
(simple-format #f "deleting package derivation entries for ~A" branch-name)
|
||||||
|
(lambda ()
|
||||||
|
(delete-guix-revision-package-derivation-entries conn
|
||||||
|
git-repository-id
|
||||||
|
guix-revision-id
|
||||||
|
branch-name)))
|
||||||
|
(log-time
|
||||||
|
(simple-format #f "inserting package derivation entries for ~A" branch-name)
|
||||||
|
(lambda ()
|
||||||
|
(insert-guix-revision-package-derivation-entries conn
|
||||||
|
git-repository-id
|
||||||
|
guix-revision-id
|
||||||
|
branch-name)))))
|
||||||
(exec-query
|
(exec-query
|
||||||
conn
|
conn
|
||||||
"SELECT name FROM git_branches WHERE commit = $1 AND git_repository_id = $2"
|
"SELECT name FROM git_branches WHERE commit = $1 AND git_repository_id = $2"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue