Improve the package derivation by guix revision range insert queries
This commit is contained in:
parent
e0f5ad3f51
commit
786a5fa041
1 changed files with 25 additions and 18 deletions
|
|
@ -83,14 +83,11 @@ INNER JOIN (
|
|||
INNER JOIN guix_revisions
|
||||
ON guix_revisions.git_repository_id = $1
|
||||
AND revision_packages.revision_id = guix_revisions.id
|
||||
INNER JOIN git_branches
|
||||
ON git_branches.id = $2
|
||||
INNER JOIN git_commits
|
||||
ON git_branches.id = git_commits.git_branch_id
|
||||
ON git_commits.git_branch_id = $2
|
||||
AND guix_revisions.commit = git_commits.commit
|
||||
WINDOW package_version AS (
|
||||
PARTITION BY git_branches.git_repository_id, git_branches.name,
|
||||
packages.name, packages.version, revision_packages.derivation_id
|
||||
PARTITION BY packages.name, packages.version, revision_packages.derivation_id
|
||||
ORDER BY git_commits.datetime
|
||||
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
|
||||
)
|
||||
|
|
@ -126,7 +123,7 @@ PARTITION OF package_derivations_by_guix_revision_range FOR VALUES IN ("
|
|||
"
|
||||
INSERT INTO package_derivations_by_guix_revision_range
|
||||
SELECT DISTINCT
|
||||
git_branches.id,
|
||||
$2,
|
||||
packages.name AS package_name,
|
||||
packages.version AS package_version,
|
||||
revision_packages.derivation_id AS derivation_id,
|
||||
|
|
@ -152,11 +149,8 @@ INNER JOIN (
|
|||
INNER JOIN guix_revisions
|
||||
ON guix_revisions.git_repository_id = $1
|
||||
AND revision_packages.revision_id = guix_revisions.id
|
||||
INNER JOIN git_branches
|
||||
ON git_branches.name = $2
|
||||
AND git_branches.git_repository_id = $1
|
||||
INNER JOIN git_commits
|
||||
ON git_branches.id = git_commits.git_branch_id
|
||||
ON git_commits.git_branch_id = $2
|
||||
AND guix_revisions.commit = git_commits.commit
|
||||
WHERE revision_packages.derivation_id IN (
|
||||
SELECT package_derivations.derivation_id
|
||||
|
|
@ -166,19 +160,32 @@ WHERE revision_packages.derivation_id IN (
|
|||
WHERE revision_id = $3
|
||||
)
|
||||
WINDOW package_version AS (
|
||||
PARTITION BY git_branches.git_repository_id, git_branches.name,
|
||||
packages.name, packages.version, revision_packages.derivation_id
|
||||
PARTITION BY packages.name, packages.version, revision_packages.derivation_id
|
||||
ORDER BY git_commits.datetime
|
||||
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
|
||||
)
|
||||
ORDER BY packages.name, packages.version")
|
||||
|
||||
(exec-query
|
||||
conn
|
||||
query
|
||||
(list git-repository-id
|
||||
branch-name
|
||||
guix-revision-id)))
|
||||
(let ((git-branch-id (git-branch-for-repository-and-name conn
|
||||
(string->number
|
||||
git-repository-id)
|
||||
branch-name)))
|
||||
(exec-query
|
||||
conn
|
||||
(string-append
|
||||
"
|
||||
CREATE TABLE IF NOT EXISTS package_derivations_by_guix_revision_range_git_branch_"
|
||||
(number->string git-branch-id) "
|
||||
PARTITION OF package_derivations_by_guix_revision_range FOR VALUES IN ("
|
||||
(number->string git-branch-id)
|
||||
")"))
|
||||
|
||||
(exec-query
|
||||
conn
|
||||
query
|
||||
(list git-repository-id
|
||||
(number->string git-branch-id)
|
||||
guix-revision-id))))
|
||||
|
||||
(define (update-package-derivations-table conn
|
||||
git-repository-id
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue