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).
This commit is contained in:
		
							parent
							
								
									7cdefdbe73
								
							
						
					
					
						commit
						bce14d0f61
					
				
					 1 changed files with 0 additions and 6 deletions
				
			
		| 
						 | 
					@ -929,8 +929,6 @@ PathSet LocalStore::queryValidDerivers(const Path & path)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PathSet LocalStore::queryDerivationOutputs(const Path & path)
 | 
					PathSet LocalStore::queryDerivationOutputs(const Path & path)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    SQLiteTxn txn(db);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    SQLiteStmtUse use(stmtQueryDerivationOutputs);
 | 
					    SQLiteStmtUse use(stmtQueryDerivationOutputs);
 | 
				
			||||||
    stmtQueryDerivationOutputs.bind(queryValidPathId(path));
 | 
					    stmtQueryDerivationOutputs.bind(queryValidPathId(path));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -951,8 +949,6 @@ PathSet LocalStore::queryDerivationOutputs(const Path & path)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
StringSet LocalStore::queryDerivationOutputNames(const Path & path)
 | 
					StringSet LocalStore::queryDerivationOutputNames(const Path & path)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    SQLiteTxn txn(db);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    SQLiteStmtUse use(stmtQueryDerivationOutputs);
 | 
					    SQLiteStmtUse use(stmtQueryDerivationOutputs);
 | 
				
			||||||
    stmtQueryDerivationOutputs.bind(queryValidPathId(path));
 | 
					    stmtQueryDerivationOutputs.bind(queryValidPathId(path));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -975,8 +971,6 @@ Path LocalStore::queryPathFromHashPart(const string & hashPart)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    if (hashPart.size() != 32) throw Error("invalid hash part");
 | 
					    if (hashPart.size() != 32) throw Error("invalid hash part");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SQLiteTxn txn(db);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Path prefix = settings.nixStore + "/" + hashPart;
 | 
					    Path prefix = settings.nixStore + "/" + hashPart;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SQLiteStmtUse use(stmtQueryPathFromHashPart);
 | 
					    SQLiteStmtUse use(stmtQueryPathFromHashPart);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue