Improve the insert-guix-revision-package-derivation-entries query
Somewhat untested improvements, but these make the query a bit more rigorous in the case of multiple branches and git repositories.
This commit is contained in:
parent
63d7af9340
commit
94030b736c
1 changed files with 12 additions and 7 deletions
|
|
@ -53,8 +53,8 @@ WHERE git_repository_id = $1 AND
|
||||||
"
|
"
|
||||||
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,
|
git_branches.git_repository_id,
|
||||||
$2 AS branch_name,
|
git_branches.name AS branch_name,
|
||||||
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,
|
||||||
|
|
@ -75,11 +75,15 @@ INNER JOIN (
|
||||||
INNER JOIN guix_revision_package_derivations
|
INNER JOIN guix_revision_package_derivations
|
||||||
ON package_derivations.id = guix_revision_package_derivations.package_derivation_id
|
ON package_derivations.id = guix_revision_package_derivations.package_derivation_id
|
||||||
) AS revision_packages ON packages.id = revision_packages.package_id
|
) AS revision_packages ON packages.id = revision_packages.package_id
|
||||||
INNER JOIN guix_revisions ON revision_packages.revision_id = guix_revisions.id
|
INNER JOIN guix_revisions
|
||||||
INNER JOIN git_branches ON guix_revisions.commit = git_branches.commit
|
ON guix_revisions.git_repository_id = $1
|
||||||
WHERE git_branches.name = $2"
|
AND revision_packages.revision_id = guix_revisions.id
|
||||||
|
INNER JOIN git_branches
|
||||||
|
ON git_branches.name = $2
|
||||||
|
AND guix_revisions.commit = git_branches.commit
|
||||||
|
"
|
||||||
(if guix-revision-id
|
(if guix-revision-id
|
||||||
" AND
|
"WHERE
|
||||||
revision_packages.derivation_id IN (
|
revision_packages.derivation_id IN (
|
||||||
SELECT package_derivations.derivation_id
|
SELECT package_derivations.derivation_id
|
||||||
FROM package_derivations
|
FROM package_derivations
|
||||||
|
|
@ -90,7 +94,8 @@ WHERE git_branches.name = $2"
|
||||||
"")
|
"")
|
||||||
"
|
"
|
||||||
WINDOW package_version AS (
|
WINDOW package_version AS (
|
||||||
PARTITION BY packages.name, packages.version, revision_packages.derivation_id
|
PARTITION BY git_branches.git_repository_id, git_branches.name,
|
||||||
|
packages.name, packages.version, revision_packages.derivation_id
|
||||||
ORDER BY git_branches.datetime
|
ORDER BY git_branches.datetime
|
||||||
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
|
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue