* Replacing ValidPath rows doesn't work because it causes a constraint
violation of the Refs table. So don't do that.
This commit is contained in:
parent
a443c7573b
commit
d1f6c0cbe3
|
@ -311,7 +311,7 @@ void LocalStore::openDB(bool create)
|
|||
|
||||
/* Prepare SQL statements. */
|
||||
stmtRegisterValidPath.create(db,
|
||||
"insert or replace into ValidPaths (path, hash, registrationTime, deriver) values (?, ?, ?, ?);");
|
||||
"insert into ValidPaths (path, hash, registrationTime, deriver) values (?, ?, ?, ?);");
|
||||
stmtAddReference.create(db,
|
||||
"insert or replace into Refs (referrer, reference) values (?, ?);");
|
||||
stmtQueryPathInfo.create(db,
|
||||
|
@ -837,7 +837,10 @@ void LocalStore::registerValidPaths(const ValidPathInfos & infos)
|
|||
{
|
||||
SQLiteTxn txn(db);
|
||||
|
||||
foreach (ValidPathInfos::const_iterator, i, infos) addValidPath(*i);
|
||||
foreach (ValidPathInfos::const_iterator, i, infos)
|
||||
/* !!! Maybe the registration info should be updated if the
|
||||
path is already valid. */
|
||||
if (!isValidPath(i->path)) addValidPath(*i);
|
||||
|
||||
foreach (ValidPathInfos::const_iterator, i, infos) {
|
||||
unsigned long long referrer = queryValidPathId(i->path);
|
||||
|
|
Loading…
Reference in a new issue