mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-22 22:16:16 +02:00
* Get rid of the `netsources' database.
* Rename the `refs' database to `hash2paths'.
This commit is contained in:
parent
be96c2189c
commit
a5a90f501e
3 changed files with 10 additions and 23 deletions
|
@ -2,9 +2,8 @@
|
||||||
#include "db.hh"
|
#include "db.hh"
|
||||||
|
|
||||||
|
|
||||||
string dbRefs = "refs";
|
string dbHash2Paths = "hash2paths";
|
||||||
string dbSuccessors = "successors";
|
string dbSuccessors = "successors";
|
||||||
string dbNetSources = "netsources";
|
|
||||||
|
|
||||||
string nixStore = "/UNINIT";
|
string nixStore = "/UNINIT";
|
||||||
string nixLogDir = "/UNINIT";
|
string nixLogDir = "/UNINIT";
|
||||||
|
@ -13,7 +12,6 @@ string nixDB = "/UNINIT";
|
||||||
|
|
||||||
void initDB()
|
void initDB()
|
||||||
{
|
{
|
||||||
createDB(nixDB, dbRefs);
|
createDB(nixDB, dbHash2Paths);
|
||||||
createDB(nixDB, dbSuccessors);
|
createDB(nixDB, dbSuccessors);
|
||||||
createDB(nixDB, dbNetSources);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,11 +8,11 @@ using namespace std;
|
||||||
|
|
||||||
/* Database names. */
|
/* Database names. */
|
||||||
|
|
||||||
/* dbRefs :: Hash -> Path
|
/* dbHash2Paths :: Hash -> [Path]
|
||||||
|
|
||||||
Maintains a mapping from hashes to paths. This is what we use to
|
Maintains a mapping from hashes to lists of paths. This is what we
|
||||||
resolve CHash(hash) content descriptors. */
|
use to resolve Hash(hash) content descriptors. */
|
||||||
extern string dbRefs;
|
extern string dbHash2Paths;
|
||||||
|
|
||||||
/* dbSuccessors :: Hash -> Hash
|
/* dbSuccessors :: Hash -> Hash
|
||||||
|
|
||||||
|
@ -30,17 +30,6 @@ extern string dbRefs;
|
||||||
*/
|
*/
|
||||||
extern string dbSuccessors;
|
extern string dbSuccessors;
|
||||||
|
|
||||||
/* dbNetSources :: Hash -> URL
|
|
||||||
|
|
||||||
Each pair (hash, url) in this mapping states that the value
|
|
||||||
identified by hash can be obtained by fetching the value pointed
|
|
||||||
to by url.
|
|
||||||
|
|
||||||
TODO: this should be Hash -> [URL]
|
|
||||||
|
|
||||||
TODO: factor this out into a separate tool? */
|
|
||||||
extern string dbNetSources;
|
|
||||||
|
|
||||||
|
|
||||||
/* Path names. */
|
/* Path names. */
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ Hash registerPath(const string & _path, Hash hash)
|
||||||
if (hash == Hash()) hash = hashPath(path);
|
if (hash == Hash()) hash = hashPath(path);
|
||||||
|
|
||||||
Strings paths;
|
Strings paths;
|
||||||
queryListDB(nixDB, dbRefs, hash, paths); /* non-existence = ok */
|
queryListDB(nixDB, dbHash2Paths, hash, paths); /* non-existence = ok */
|
||||||
|
|
||||||
for (Strings::iterator it = paths.begin();
|
for (Strings::iterator it = paths.begin();
|
||||||
it != paths.end(); it++)
|
it != paths.end(); it++)
|
||||||
|
@ -98,7 +98,7 @@ Hash registerPath(const string & _path, Hash hash)
|
||||||
|
|
||||||
paths.push_back(path);
|
paths.push_back(path);
|
||||||
|
|
||||||
setListDB(nixDB, dbRefs, hash, paths);
|
setListDB(nixDB, dbHash2Paths, hash, paths);
|
||||||
|
|
||||||
exists:
|
exists:
|
||||||
return hash;
|
return hash;
|
||||||
|
@ -116,7 +116,7 @@ static string queryPathByHashPrefix(Hash hash, const string & prefix)
|
||||||
{
|
{
|
||||||
Strings paths;
|
Strings paths;
|
||||||
|
|
||||||
if (!queryListDB(nixDB, dbRefs, hash, paths))
|
if (!queryListDB(nixDB, dbHash2Paths, hash, paths))
|
||||||
throw Error(format("no paths known with hash `%1%'") % (string) hash);
|
throw Error(format("no paths known with hash `%1%'") % (string) hash);
|
||||||
|
|
||||||
/* Arbitrarily pick the first one that exists and still hash the
|
/* Arbitrarily pick the first one that exists and still hash the
|
||||||
|
@ -172,5 +172,5 @@ void deleteFromStore(const string & path)
|
||||||
if (string(path, 0, prefix.size()) != prefix)
|
if (string(path, 0, prefix.size()) != prefix)
|
||||||
throw Error(format("path %1% is not in the store") % path);
|
throw Error(format("path %1% is not in the store") % path);
|
||||||
deletePath(path);
|
deletePath(path);
|
||||||
// delDB(nixDB, dbRefs, hash);
|
// delDB(nixDB, dbHash2Paths, hash);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue