diff options
Diffstat (limited to 'gentoobrowse-api/service/sql')
-rw-r--r-- | gentoobrowse-api/service/sql/portage/getPackageUses.sql | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gentoobrowse-api/service/sql/portage/getPackageUses.sql b/gentoobrowse-api/service/sql/portage/getPackageUses.sql new file mode 100644 index 0000000..50d6c0a --- /dev/null +++ b/gentoobrowse-api/service/sql/portage/getPackageUses.sql @@ -0,0 +1,19 @@ +SELECT eu.use, ul.use IS NOT NULL islocal, ugg.name AS group, LTRIM(COALESCE(ugg.use, eu.use), '+') AS name, + COALESCE(ul.description, ugg.description, ug.description) description +FROM gentoobrowse.ebuilds e + JOIN gentoobrowse.ebuild_uses eu + ON e.ebuildid = eu.ebuildid + LEFT OUTER JOIN gentoobrowse.use_global ug + ON LTRIM(eu.use, '+') = ug.use + LEFT OUTER JOIN gentoobrowse.use_local ul + ON LTRIM(eu.use, '+') = ul.use + AND ul.packageid = e.packageid + LEFT OUTER JOIN ( + SELECT ugs.usegroupid, ugs.name, ugg.use, ugg.description + FROM gentoobrowse.use_group ugg, gentoobrowse.use_groups ugs + WHERE ugs.usegroupid = ugg.usegroupid) ugg + ON REVERSE(SPLIT_PART(REVERSE(eu.use), '_', 1)) = ugg.use + AND LEFT(eu.use, LENGTH(eu.use) - LENGTH(SPLIT_PART(REVERSE(eu.use), '_', 1)) - 1) = ugg.name +WHERE e.packageid = ? +GROUP BY eu.use, ul.use, ul.packageid, ug.use, ugg.name, ugg.usegroupid, ugg.use, ugg.description +ORDER BY ugg.name nulls first, eu.use |