diff --git a/guix-data-service/model/package-metadata.scm b/guix-data-service/model/package-metadata.scm index 6eca089..9668185 100644 --- a/guix-data-service/model/package-metadata.scm +++ b/guix-data-service/model/package-metadata.scm @@ -433,40 +433,14 @@ WHERE packages.id IN ( (define (package-description-and-synopsis-locale-options-guix-revision conn revision-id) + ;; TODO This no longer uses the revision-id, as that's too expensive. Maybe + ;; some caching is needed. (exec-query conn " -WITH package_metadata_ids AS ( - SELECT packages.package_metadata_id AS id - FROM packages - WHERE packages.id IN ( - 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 - ON package_synopsis_sets.id = package_metadata.package_synopsis_set_id - INNER JOIN package_synopsis - ON package_synopsis.id = ANY (package_synopsis_sets.synopsis_ids) - WHERE package_metadata.id IN (SELECT id FROM package_metadata_ids) -), description_locales AS ( - SELECT package_descriptions.locale - FROM package_metadata - INNER JOIN package_description_sets - ON package_description_sets.id = package_metadata.package_description_set_id - 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 +SELECT locale FROM package_synopsis UNION -SELECT locale FROM description_locales" - (list revision-id))) +SELECT locale FROM package_descriptions")) (define (synopsis-counts-by-locale conn revision-id) (define synopsis-counts