mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Cache package licenses, groups and relations
Cache more package details if the global caching mechanism is enabled. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
parent
6493d00db5
commit
f804ea4abb
1 changed files with 22 additions and 44 deletions
|
@ -158,22 +158,15 @@ function pkg_from_name($name="") {
|
||||||
* @return array All licenses for the package
|
* @return array All licenses for the package
|
||||||
*/
|
*/
|
||||||
function pkg_licenses($pkgid) {
|
function pkg_licenses($pkgid) {
|
||||||
$lics = array();
|
|
||||||
$pkgid = intval($pkgid);
|
$pkgid = intval($pkgid);
|
||||||
if ($pkgid > 0) {
|
if (!$pkgid) {
|
||||||
$dbh = DB::connect();
|
return array();
|
||||||
$q = "SELECT l.Name FROM Licenses l ";
|
|
||||||
$q.= "INNER JOIN PackageLicenses pl ON pl.LicenseID = l.ID ";
|
|
||||||
$q.= "WHERE pl.PackageID = ". $pkgid;
|
|
||||||
$result = $dbh->query($q);
|
|
||||||
if (!$result) {
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
while ($row = $result->fetch(PDO::FETCH_COLUMN, 0)) {
|
|
||||||
$lics[] = $row;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return $lics;
|
$q = "SELECT l.Name FROM Licenses l ";
|
||||||
|
$q.= "INNER JOIN PackageLicenses pl ON pl.LicenseID = l.ID ";
|
||||||
|
$q.= "WHERE pl.PackageID = ". $pkgid;
|
||||||
|
$rows = db_cache_result($q, 'licenses:' . $pkgid);
|
||||||
|
return array_map(function ($x) { return $x[0]; }, $rows);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -184,22 +177,15 @@ function pkg_licenses($pkgid) {
|
||||||
* @return array All package groups for the package
|
* @return array All package groups for the package
|
||||||
*/
|
*/
|
||||||
function pkg_groups($pkgid) {
|
function pkg_groups($pkgid) {
|
||||||
$grps = array();
|
|
||||||
$pkgid = intval($pkgid);
|
$pkgid = intval($pkgid);
|
||||||
if ($pkgid > 0) {
|
if (!$pkgid) {
|
||||||
$dbh = DB::connect();
|
return array();
|
||||||
$q = "SELECT g.Name FROM `Groups` g ";
|
|
||||||
$q.= "INNER JOIN PackageGroups pg ON pg.GroupID = g.ID ";
|
|
||||||
$q.= "WHERE pg.PackageID = ". $pkgid;
|
|
||||||
$result = $dbh->query($q);
|
|
||||||
if (!$result) {
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
while ($row = $result->fetch(PDO::FETCH_COLUMN, 0)) {
|
|
||||||
$grps[] = $row;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return $grps;
|
$q = "SELECT g.Name FROM `Groups` g ";
|
||||||
|
$q.= "INNER JOIN PackageGroups pg ON pg.GroupID = g.ID ";
|
||||||
|
$q.= "WHERE pg.PackageID = ". $pkgid;
|
||||||
|
$rows = db_cache_result($q, 'groups:' . $pkgid);
|
||||||
|
return array_map(function ($x) { return $x[0]; }, $rows);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -256,24 +242,16 @@ function pkg_dependencies($pkgid, $limit) {
|
||||||
* @return array All package relations for the package
|
* @return array All package relations for the package
|
||||||
*/
|
*/
|
||||||
function pkg_relations($pkgid) {
|
function pkg_relations($pkgid) {
|
||||||
$rels = array();
|
|
||||||
$pkgid = intval($pkgid);
|
$pkgid = intval($pkgid);
|
||||||
if ($pkgid > 0) {
|
if (!$pkgid) {
|
||||||
$dbh = DB::connect();
|
return array();
|
||||||
$q = "SELECT pr.RelName, rt.Name, pr.RelCondition, pr.RelArch, p.ID FROM PackageRelations pr ";
|
|
||||||
$q.= "LEFT JOIN Packages p ON pr.RelName = p.Name ";
|
|
||||||
$q.= "LEFT JOIN RelationTypes rt ON rt.ID = pr.RelTypeID ";
|
|
||||||
$q.= "WHERE pr.PackageID = ". $pkgid . " ";
|
|
||||||
$q.= "ORDER BY pr.RelName";
|
|
||||||
$result = $dbh->query($q);
|
|
||||||
if (!$result) {
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
while ($row = $result->fetch(PDO::FETCH_NUM)) {
|
|
||||||
$rels[] = $row;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return $rels;
|
$q = "SELECT pr.RelName, rt.Name, pr.RelCondition, pr.RelArch, p.ID FROM PackageRelations pr ";
|
||||||
|
$q.= "LEFT JOIN Packages p ON pr.RelName = p.Name ";
|
||||||
|
$q.= "LEFT JOIN RelationTypes rt ON rt.ID = pr.RelTypeID ";
|
||||||
|
$q.= "WHERE pr.PackageID = ". $pkgid . " ";
|
||||||
|
$q.= "ORDER BY pr.RelName";
|
||||||
|
return db_cache_result($q, 'relations:' . $pkgid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue