From bce14d0f61801f0f1c3080970619e2ca11683a4e Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 16 Oct 2013 14:36:53 +0200 Subject: [PATCH] Don't wrap read-only queries in a transaction There is no risk of getting an inconsistent result here: if the ID returned by queryValidPathId() is deleted from the database concurrently, subsequent queries involving that ID will simply fail (since IDs are never reused). --- src/libstore/local-store.cc | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index 7f7f70bb8..f88af10f7 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -929,8 +929,6 @@ PathSet LocalStore::queryValidDerivers(const Path & path) PathSet LocalStore::queryDerivationOutputs(const Path & path) { - SQLiteTxn txn(db); - SQLiteStmtUse use(stmtQueryDerivationOutputs); stmtQueryDerivationOutputs.bind(queryValidPathId(path)); @@ -951,8 +949,6 @@ PathSet LocalStore::queryDerivationOutputs(const Path & path) StringSet LocalStore::queryDerivationOutputNames(const Path & path) { - SQLiteTxn txn(db); - SQLiteStmtUse use(stmtQueryDerivationOutputs); stmtQueryDerivationOutputs.bind(queryValidPathId(path)); @@ -975,8 +971,6 @@ Path LocalStore::queryPathFromHashPart(const string & hashPart) { if (hashPart.size() != 32) throw Error("invalid hash part"); - SQLiteTxn txn(db); - Path prefix = settings.nixStore + "/" + hashPart; SQLiteStmtUse use(stmtQueryPathFromHashPart);