diff --git a/src/Database/Esqueleto.hs b/src/Database/Esqueleto.hs index d91827c..490a79c 100644 --- a/src/Database/Esqueleto.hs +++ b/src/Database/Esqueleto.hs @@ -81,6 +81,7 @@ module Database.Esqueleto -- * Helpers , valkey + , keyE -- * Re-exports -- $reexports @@ -376,6 +377,16 @@ valkey :: Esqueleto query expr backend => valkey = val . Key . PersistInt64 +-- | Given a value, lift the Key for that value into the query expression. +keyE :: Esqueleto query expr backend => + Value (Key entity) -> expr (Value (Key entity)) +keyE v = + valkey $ + case (unKey . unValue) v of + PersistInt64 x -> x + _ -> error "Esqueleto.keyE: Impossible!" + + ----------------------------------------------------------------------