summaryrefslogtreecommitdiff
path: root/gentoobrowse-api/service/sql/portage
diff options
context:
space:
mode:
Diffstat (limited to 'gentoobrowse-api/service/sql/portage')
-rw-r--r--gentoobrowse-api/service/sql/portage/getPackageUses.sql19
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