Hoogle Search
Within LTS Haskell 24.38 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
persistent Database.Persist.Quasi.PersistSettings No documentation available.
-
persistent Database.Persist.Quasi.PersistSettings No documentation available.
-
persistent Database.Persist.Quasi.PersistSettings No documentation available.
-
persistent Database.Persist.Quasi.PersistSettings.Internal No documentation available.
-
persistent Database.Persist.Quasi.PersistSettings.Internal No documentation available.
ParserWarning :: String -> ParseError String Void -> PosState String -> ParserWarningpersistent Database.Persist.Quasi.PersistSettings.Internal No documentation available.
-
persistent Database.Persist.Quasi.PersistSettings.Internal No documentation available.
-
persistent Database.Persist.Quasi.PersistSettings.Internal No documentation available.
class PersistField a =>
PersistFieldSql apersistent Database.Persist.Sql Tells Persistent what database column type should be used to store a Haskell type.
Examples
Simple Boolean Alternative
data Switch = On | Off deriving (Show, Eq) instance PersistField Switch where toPersistValue s = case s of On -> PersistBool True Off -> PersistBool False fromPersistValue (PersistBool b) = if b then Right On else Right Off fromPersistValue x = Left $ "File.hs: When trying to deserialize a Switch: expected PersistBool, received: " <> T.pack (show x) instance PersistFieldSql Switch where sqlType _ = SqlBool
Non-Standard Database Types
If your database supports non-standard types, such as Postgres' uuid, you can use SqlOther to use them:import qualified Data.UUID as UUID instance PersistField UUID where toPersistValue = PersistLiteralEncoded . toASCIIBytes fromPersistValue (PersistLiteralEncoded uuid) = case fromASCIIBytes uuid of Nothing -> Left $ "Model/CustomTypes.hs: Failed to deserialize a UUID; received: " <> T.pack (show uuid) Just uuid' -> Right uuid' fromPersistValue x = Left $ "File.hs: When trying to deserialize a UUID: expected PersistLiteralEncoded, received: "-- > <> T.pack (show x) instance PersistFieldSql UUID where sqlType _ = SqlOther "uuid"
User Created Database Types
Similarly, some databases support creating custom types, e.g. Postgres' DOMAIN and ENUM features. You can use SqlOther to specify a custom type:CREATE DOMAIN ssn AS text CHECK ( value ~ '^[0-9]{9}$');instance PersistFieldSQL SSN where sqlType _ = SqlOther "ssn"
CREATE TYPE rainbow_color AS ENUM ('red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet');instance PersistFieldSQL RainbowColor where sqlType _ = SqlOther "rainbow_color"
-
persistent Database.Persist.Sql No documentation available.