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
|
INNER JOIN guix_revisions
|
||||||
ON guix_revisions.git_repository_id = $1
|
ON guix_revisions.git_repository_id = $1
|
||||||
AND revision_packages.revision_id = guix_revisions.id
|
AND revision_packages.revision_id = guix_revisions.id
|
||||||
INNER JOIN git_branches
|
|
||||||
ON git_branches.id = $2
|
|
||||||
INNER JOIN git_commits
|
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
|
AND guix_revisions.commit = git_commits.commit
|
||||||
WINDOW package_version AS (
|
WINDOW package_version AS (
|
||||||
PARTITION BY git_branches.git_repository_id, git_branches.name,
|
PARTITION BY packages.name, packages.version, revision_packages.derivation_id
|
||||||
packages.name, packages.version, revision_packages.derivation_id
|
|
||||||
ORDER BY git_commits.datetime
|
ORDER BY git_commits.datetime
|
||||||
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
|
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
|
INSERT INTO package_derivations_by_guix_revision_range
|
||||||
SELECT DISTINCT
|
SELECT DISTINCT
|
||||||
git_branches.id,
|
$2,
|
||||||
packages.name AS package_name,
|
packages.name AS package_name,
|
||||||
packages.version AS package_version,
|
packages.version AS package_version,
|
||||||
revision_packages.derivation_id AS derivation_id,
|
revision_packages.derivation_id AS derivation_id,
|
||||||
|
|
@ -152,11 +149,8 @@ INNER JOIN (
|
||||||
INNER JOIN guix_revisions
|
INNER JOIN guix_revisions
|
||||||
ON guix_revisions.git_repository_id = $1
|
ON guix_revisions.git_repository_id = $1
|
||||||
AND revision_packages.revision_id = guix_revisions.id
|
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
|
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
|
AND guix_revisions.commit = git_commits.commit
|
||||||
WHERE revision_packages.derivation_id IN (
|
WHERE revision_packages.derivation_id IN (
|
||||||
SELECT package_derivations.derivation_id
|
SELECT package_derivations.derivation_id
|
||||||
|
|
@ -166,19 +160,32 @@ WHERE revision_packages.derivation_id IN (
|
||||||
WHERE revision_id = $3
|
WHERE revision_id = $3
|
||||||
)
|
)
|
||||||
WINDOW package_version AS (
|
WINDOW package_version AS (
|
||||||
PARTITION BY git_branches.git_repository_id, git_branches.name,
|
PARTITION BY packages.name, packages.version, revision_packages.derivation_id
|
||||||
packages.name, packages.version, revision_packages.derivation_id
|
|
||||||
ORDER BY git_commits.datetime
|
ORDER BY git_commits.datetime
|
||||||
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")
|
||||||
|
|
||||||
(exec-query
|
(let ((git-branch-id (git-branch-for-repository-and-name conn
|
||||||
conn
|
(string->number
|
||||||
query
|
git-repository-id)
|
||||||
(list git-repository-id
|
branch-name)))
|
||||||
branch-name
|
(exec-query
|
||||||
guix-revision-id)))
|
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
|
(define (update-package-derivations-table conn
|
||||||
git-repository-id
|
git-repository-id
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue