Cache package requirements and sources

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
Lukas Fleischer 2019-10-09 15:13:15 -04:00
parent 734527370d
commit 3ec0f6bfbf

View file

@ -485,11 +485,8 @@ function pkg_required($name="", $provides, $limit) {
$q.= "LEFT JOIN DependencyTypes dt ON dt.ID = pd.DepTypeID "; $q.= "LEFT JOIN DependencyTypes dt ON dt.ID = pd.DepTypeID ";
$q.= "WHERE pd.DepName IN (" . $name_list . ") "; $q.= "WHERE pd.DepName IN (" . $name_list . ") ";
$q.= "ORDER BY p.Name LIMIT " . intval($limit); $q.= "ORDER BY p.Name LIMIT " . intval($limit);
$result = $dbh->query($q); /* Not invalidated by package updates. */
if (!$result) {return array();} return db_cache_result($q, 'required:' . $name, PDO::FETCH_NUM);
while ($row = $result->fetch(PDO::FETCH_NUM)) {
$deps[] = $row;
}
} }
return $deps; return $deps;
} }
@ -502,22 +499,15 @@ function pkg_required($name="", $provides, $limit) {
* @return array All sources associated with a specific package * @return array All sources associated with a specific package
*/ */
function pkg_sources($pkgid) { function pkg_sources($pkgid) {
$sources = array();
$pkgid = intval($pkgid); $pkgid = intval($pkgid);
if ($pkgid > 0) { if (!$pkgid) {
$dbh = DB::connect(); return array();
$q = "SELECT Source, SourceArch FROM PackageSources ";
$q.= "WHERE PackageID = " . $pkgid;
$q.= " ORDER BY Source";
$result = $dbh->query($q);
if (!$result) {
return array();
}
while ($row = $result->fetch(PDO::FETCH_NUM)) {
$sources[] = $row;
}
} }
return $sources; $q = "SELECT Source, SourceArch FROM PackageSources ";
$q.= "WHERE PackageID = " . $pkgid;
$q.= " ORDER BY Source";
$ttl = config_get_int('options', 'cache_pkginfo_ttl');
return db_cache_result($q, 'required:' . $pkgid, PDO::FETCH_NUM, $ttl);
} }
/** /**