Speed up finding the locales for a revision
This commit is contained in:
parent
12af30c039
commit
e3062abf33
5 changed files with 51 additions and 15 deletions
|
|
@ -435,23 +435,37 @@ WHERE packages.id IN (
|
||||||
revision-id)
|
revision-id)
|
||||||
(exec-query
|
(exec-query
|
||||||
conn
|
conn
|
||||||
"SELECT DISTINCT coalesce(package_descriptions.locale, package_synopsis.locale)
|
"
|
||||||
FROM package_descriptions
|
WITH package_metadata_ids AS (
|
||||||
INNER JOIN package_description_sets
|
SELECT packages.package_metadata_id AS id
|
||||||
ON package_descriptions.id = ANY (package_description_sets.description_ids)
|
FROM packages
|
||||||
INNER JOIN package_metadata
|
WHERE packages.id IN (
|
||||||
ON package_metadata.package_description_set_id = package_description_sets.id
|
SELECT package_derivations.package_id
|
||||||
|
FROM package_derivations
|
||||||
|
INNER JOIN guix_revision_package_derivations
|
||||||
|
ON package_derivations.id = guix_revision_package_derivations.package_derivation_id
|
||||||
|
WHERE guix_revision_package_derivations.revision_id = $1
|
||||||
|
)
|
||||||
|
), synopsis_locales AS (
|
||||||
|
SELECT package_synopsis.locale
|
||||||
|
FROM package_metadata
|
||||||
INNER JOIN package_synopsis_sets
|
INNER JOIN package_synopsis_sets
|
||||||
ON package_synopsis_sets.id = package_metadata.package_synopsis_set_id
|
ON package_synopsis_sets.id = package_metadata.package_synopsis_set_id
|
||||||
INNER JOIN package_synopsis
|
INNER JOIN package_synopsis
|
||||||
ON package_synopsis.id = ANY (package_synopsis_sets.synopsis_ids)
|
ON package_synopsis.id = ANY (package_synopsis_sets.synopsis_ids)
|
||||||
INNER JOIN packages
|
WHERE package_metadata.id IN (SELECT id FROM package_metadata_ids)
|
||||||
ON packages.package_metadata_id = package_metadata.id
|
), description_locales AS (
|
||||||
INNER JOIN package_derivations
|
SELECT package_descriptions.locale
|
||||||
ON package_derivations.package_id = packages.id
|
FROM package_metadata
|
||||||
INNER JOIN guix_revision_package_derivations
|
INNER JOIN package_description_sets
|
||||||
ON package_derivations.id = guix_revision_package_derivations.package_derivation_id
|
ON package_description_sets.id = package_metadata.package_description_set_id
|
||||||
WHERE guix_revision_package_derivations.revision_id = $1"
|
INNER JOIN package_descriptions
|
||||||
|
ON package_descriptions.id = ANY (package_description_sets.description_ids)
|
||||||
|
WHERE package_metadata.id IN (SELECT id FROM package_metadata_ids)
|
||||||
|
)
|
||||||
|
SELECT locale FROM synopsis_locales
|
||||||
|
UNION
|
||||||
|
SELECT locale FROM description_locales"
|
||||||
(list revision-id)))
|
(list revision-id)))
|
||||||
|
|
||||||
(define (synopsis-counts-by-locale conn revision-id)
|
(define (synopsis-counts-by-locale conn revision-id)
|
||||||
|
|
|
||||||
7
sqitch/deploy/package_derivations_id_package_id_idx.sql
Normal file
7
sqitch/deploy/package_derivations_id_package_id_idx.sql
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
-- Deploy guix-data-service:package_derivations_id_package_id_idx to pg
|
||||||
|
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
CREATE INDEX package_derivations_id_package_id_idx ON package_derivations (id, package_id) WITH (fillfactor='100');
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
7
sqitch/revert/package_derivations_id_package_id_idx.sql
Normal file
7
sqitch/revert/package_derivations_id_package_id_idx.sql
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
-- Revert guix-data-service:package_derivations_id_package_id_idx from pg
|
||||||
|
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
-- XXX Add DDLs here.
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
|
@ -88,3 +88,4 @@ partition_package_derivations_by_guix_revision_range 2022-05-23T18:20:37Z Chris
|
||||||
package_range_index 2022-06-17T10:39:31Z Chris <chris@felis> # Add index on package_derivations_by_guix_revision_range.package_name
|
package_range_index 2022-06-17T10:39:31Z Chris <chris@felis> # Add index on package_derivations_by_guix_revision_range.package_name
|
||||||
fix_git_commits_duplicates 2022-06-17T10:39:50Z Chris <chris@felis> # Fix git_commits duplicates
|
fix_git_commits_duplicates 2022-06-17T10:39:50Z Chris <chris@felis> # Fix git_commits duplicates
|
||||||
git_repositories_query_substitutes 2022-09-09T11:35:16Z Chris <chris@felis> # Add git_repositories.query_substitutes
|
git_repositories_query_substitutes 2022-09-09T11:35:16Z Chris <chris@felis> # Add git_repositories.query_substitutes
|
||||||
|
package_derivations_id_package_id_idx 2022-09-14T09:24:30Z Chris <chris@felis> # Add index on package_derivations id and package_id
|
||||||
|
|
|
||||||
7
sqitch/verify/package_derivations_id_package_id_idx.sql
Normal file
7
sqitch/verify/package_derivations_id_package_id_idx.sql
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
-- Verify guix-data-service:package_derivations_id_package_id_idx on pg
|
||||||
|
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
-- XXX Add verifications here.
|
||||||
|
|
||||||
|
ROLLBACK;
|
||||||
Loading…
Add table
Add a link
Reference in a new issue