add getAssociatedKey
I guess this is just as efficient as the getAssociatedFiles query, but I have not tried to optimise the database yet.
This commit is contained in:
parent
2bc920e266
commit
0a7a2dae4e
1 changed files with 14 additions and 0 deletions
|
@ -17,6 +17,7 @@ module Database.Keys (
|
|||
shutdown,
|
||||
addAssociatedFile,
|
||||
getAssociatedFiles,
|
||||
getAssociatedKey,
|
||||
removeAssociatedFile,
|
||||
storeInodeCaches,
|
||||
addInodeCaches,
|
||||
|
@ -118,6 +119,19 @@ getAssociatedFiles' sk = do
|
|||
return (r ^. AssociatedFile)
|
||||
return $ map unValue l
|
||||
|
||||
{- Gets any keys that are on record as having a particular associated file.
|
||||
- (Should be one or none but the database doesn't enforce that.) -}
|
||||
getAssociatedKey :: FilePath -> Annex [Key]
|
||||
getAssociatedKey f = withDbHandle $ \h -> H.queryDb h $
|
||||
getAssociatedKey' f
|
||||
|
||||
getAssociatedKey' :: FilePath -> SqlPersistM [Key]
|
||||
getAssociatedKey' f = do
|
||||
l <- select $ from $ \r -> do
|
||||
where_ (r ^. AssociatedFile ==. val f)
|
||||
return (r ^. AssociatedKey)
|
||||
return $ map (fromSKey . unValue) l
|
||||
|
||||
removeAssociatedFile :: Key -> FilePath -> Annex ()
|
||||
removeAssociatedFile k f = withDbHandle $ \h -> H.queueDb h (\_ _ -> pure True) $
|
||||
delete $ from $ \r -> do
|
||||
|
|
Loading…
Reference in a new issue