Add a function queryValidPaths()

queryValidPaths() combines multiple calls to isValidPath() in one.
This matters when using the Nix daemon because it reduces latency.
For instance, on "nix-env -qas \*" it reduces execution time from 5.7s
to 4.7s (which is indistinguishable from the non-daemon case).
This commit is contained in:
Eelco Dolstra 2012-07-11 11:08:47 -04:00
parent 667d5f1936
commit 58ef4d9a95
8 changed files with 49 additions and 3 deletions

View file

@ -744,6 +744,15 @@ bool LocalStore::isValidPath(const Path & path)
}
PathSet LocalStore::queryValidPaths(const PathSet & paths)
{
PathSet res;
foreach (PathSet::const_iterator, i, paths)
if (isValidPath(*i)) res.insert(*i);
return res;
}
PathSet LocalStore::queryAllValidPaths()
{
SQLiteStmt stmt;