diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-07-17T22·55-0400 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-07-17T22·55-0400 |
commit | ccc52adfb2121ade510d35dc9b91193af9fa731e (patch) | |
tree | c6314b5198cdfbe9a21633e515203965ee431382 /src/libstore/local-store.hh | |
parent | 220818f758d2facc194f567f35ca677ef79393bd (diff) |
Add function queryPathFromHashPart()
To implement binary caches efficiently, Hydra needs to be able to map the hash part of a store path (e.g. "gbg...zr7") to the full store path (e.g. "/nix/store/gbg...kzr7-subversion-1.7.5"). (The binary cache mechanism uses hash parts as a key for looking up store paths to ensure privacy.) However, doing a search in the Nix store for /nix/store/<hash>* is expensive since it requires reading the entire directory. queryPathFromHashPart() prevents this by doing a cheap database lookup.
Diffstat (limited to 'src/libstore/local-store.hh')
-rw-r--r-- | src/libstore/local-store.hh | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libstore/local-store.hh b/src/libstore/local-store.hh index aa8e8582fb0d..65ee029c261e 100644 --- a/src/libstore/local-store.hh +++ b/src/libstore/local-store.hh @@ -121,6 +121,8 @@ public: StringSet queryDerivationOutputNames(const Path & path); + Path queryPathFromHashPart(const string & hashPart); + PathSet querySubstitutablePaths(); bool hasSubstitutes(const Path & path); @@ -217,6 +219,7 @@ private: SQLiteStmt stmtAddDerivationOutput; SQLiteStmt stmtQueryValidDerivers; SQLiteStmt stmtQueryDerivationOutputs; + SQLiteStmt stmtQueryPathFromHashPart; int getSchema(); |