Visitar URL original
DBPipe.SQLite
db-pipe-0.1.0.2: A pipe-like wrapper around sqlite-simple
Safe HaskellNone
LanguageGHC2021

DBPipe.SQLite

Synopsis

Documentation

class ToField a where #

A type that may be used as a single parameter to a SQL query.

Methods

toField :: a -> SQLData #

Prepare a value for substitution into a query string.

Instances

Instances details
ToField Int16 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Int16 -> SQLData #

ToField Int32 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Int32 -> SQLData #

ToField Int64 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Int64 -> SQLData #

ToField Int8 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Int8 -> SQLData #

ToField Word16 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Word16 -> SQLData #

ToField Word32 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Word32 -> SQLData #

ToField Word64 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Word64 -> SQLData #

ToField Word8 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Word8 -> SQLData #

ToField ByteString 
Instance details

Defined in Database.SQLite.Simple.ToField

ToField ByteString 
Instance details

Defined in Database.SQLite.Simple.ToField

ToField Bound Source # 
Instance details

Defined in DBPipe.SQLite.Generic

Methods

toField :: Bound -> SQLData #

ToField SQLData 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: SQLData -> SQLData #

ToField Null 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Null -> SQLData #

ToField Text 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Text -> SQLData #

ToField Text 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Text -> SQLData #

ToField Day 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Day -> SQLData #

ToField UTCTime 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: UTCTime -> SQLData #

ToField Integer 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Integer -> SQLData #

ToField Bool 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Bool -> SQLData #

ToField Double 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Double -> SQLData #

ToField Float 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Float -> SQLData #

ToField Int 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Int -> SQLData #

ToField Word 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Word -> SQLData #

ToField a => ToField (Maybe a) 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: Maybe a -> SQLData #

ToField [Char] 
Instance details

Defined in Database.SQLite.Simple.ToField

Methods

toField :: [Char] -> SQLData #

class FromField a where #

A type that may be converted from a SQL type.

Methods

fromField :: FieldParser a #

Convert a SQL value to a Haskell value.

Returns a list of exceptions if the conversion fails. In the case of library instances, this will usually be a single ResultError, but may be a UnicodeException.

Implementations of fromField should not retain any references to the Field nor the ByteString arguments after the result has been evaluated to WHNF. Such a reference causes the entire LibPQ.Result to be retained.

For example, the instance for ByteString uses copy to avoid such a reference, and that using bytestring functions such as drop and takeWhile alone will also trigger this memory leak.

Instances

Instances details
FromField Int16 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Int32 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Int64 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Int8 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Word16 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Word32 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Word64 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Word8 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField ByteString 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField ByteString 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField SQLData 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Null 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Text 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Text 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Day 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField UTCTime 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Integer 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Bool 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Double 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Float 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Int 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField Word 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField a => FromField (Maybe a) 
Instance details

Defined in Database.SQLite.Simple.FromField

FromField [Char] 
Instance details

Defined in Database.SQLite.Simple.FromField

class ToRow a where #

A collection type that can be turned into a list of SQLData elements.

Since version 0.4.18.1 it is possible in some cases to derive a generic implementation for ToRow. Refer to the documentation for FromRow to see how this can be done.

Minimal complete definition

Nothing

Methods

toRow :: a -> [SQLData] #

ToField a collection of values.

default toRow :: (Generic a, GToRow (Rep a)) => a -> [SQLData] #

Instances

Instances details
ToRow () 
Instance details

Defined in Database.SQLite.Simple.ToRow

Methods

toRow :: () -> [SQLData] #

ToField a => ToRow (Only a) 
Instance details

Defined in Database.SQLite.Simple.ToRow

Methods

toRow :: Only a -> [SQLData] #

ToField a => ToRow [a] 
Instance details

Defined in Database.SQLite.Simple.ToRow

Methods

toRow :: [a] -> [SQLData] #

(ToRow a, ToRow b) => ToRow (a :. b) 
Instance details

Defined in Database.SQLite.Simple.ToRow

Methods

toRow :: (a :. b) -> [SQLData] #

(ToField a, ToField b) => ToRow (a, b) 
Instance details

Defined in Database.SQLite.Simple.ToRow

Methods

toRow :: (a, b) -> [SQLData] #

(ToField a, ToField b, ToField c) => ToRow (a, b, c) 
Instance details

Defined in Database.SQLite.Simple.ToRow

Methods

toRow :: (a, b, c) -> [SQLData] #

(ToField a, ToField b, ToField c, ToField d) => ToRow (a, b, c, d) 
Instance details

Defined in Database.SQLite.Simple.ToRow

Methods

toRow :: (a, b, c, d) -> [SQLData] #

(ToField a, ToField b, ToField c, ToField d, ToField e) => ToRow (a, b, c, d, e) 
Instance details

Defined in Database.SQLite.Simple.ToRow

Methods

toRow :: (a, b, c, d, e) -> [SQLData] #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f) => ToRow (a, b, c, d, e, f) 
Instance details

Defined in Database.SQLite.Simple.ToRow

Methods

toRow :: (a, b, c, d, e, f) -> [SQLData] #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f, ToField g) => ToRow (a, b, c, d, e, f, g) 
Instance details

Defined in Database.SQLite.Simple.ToRow

Methods

toRow :: (a, b, c, d, e, f, g) -> [SQLData] #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f, ToField g, ToField h) => ToRow (a, b, c, d, e, f, g, h) 
Instance details

Defined in Database.SQLite.Simple.ToRow

Methods

toRow :: (a, b, c, d, e, f, g, h) -> [SQLData] #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f, ToField g, ToField h, ToField i) => ToRow (a, b, c, d, e, f, g, h, i) 
Instance details

Defined in Database.SQLite.Simple.ToRow

Methods

toRow :: (a, b, c, d, e, f, g, h, i) -> [SQLData] #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f, ToField g, ToField h, ToField i, ToField j) => ToRow (a, b, c, d, e, f, g, h, i, j) 
Instance details

Defined in Database.SQLite.Simple.ToRow

Methods

toRow :: (a, b, c, d, e, f, g, h, i, j) -> [SQLData] #

class FromRow a where #

A collection type that can be converted from a sequence of fields. Instances are provided for tuples up to 10 elements and lists of any length.

Note that instances can defined outside of sqlite-simple, which is often useful. For example, here's an instance for a user-defined pair:

data User = User { name :: String, fileQuota :: Int }

instance FromRow User where
    fromRow = User <$> field <*> field

The number of calls to field must match the number of fields returned in a single row of the query result. Otherwise, a ConversionFailed exception will be thrown.

Note the caveats associated with user-defined implementations of fromRow.

Generic implementation

Since version 0.4.18.1 it is possible in some cases to derive a generic implementation for FromRow. With a Generic instance for User, the example above could be written:

instance FromRow User where

With -XDeriveAnyClass -XDerivingStrategies the same can be written:

deriving anyclass instance FromRow User

For more details refer to GFromRow.

Minimal complete definition

Nothing

Methods

fromRow :: RowParser a #

default fromRow :: (Generic a, GFromRow (Rep a)) => RowParser a #

Instances

Instances details
FromField a => FromRow (Only a) 
Instance details

Defined in Database.SQLite.Simple.FromRow

Methods

fromRow :: RowParser (Only a) #

FromField a => FromRow [a] 
Instance details

Defined in Database.SQLite.Simple.FromRow

Methods

fromRow :: RowParser [a] #

(FromRow a, FromRow b) => FromRow (a :. b) 
Instance details

Defined in Database.SQLite.Simple.FromRow

Methods

fromRow :: RowParser (a :. b) #

(FromField a, FromField b) => FromRow (a, b) 
Instance details

Defined in Database.SQLite.Simple.FromRow

Methods

fromRow :: RowParser (a, b) #

(FromField a, FromField b, FromField c) => FromRow (a, b, c) 
Instance details

Defined in Database.SQLite.Simple.FromRow

Methods

fromRow :: RowParser (a, b, c) #

(FromField a, FromField b, FromField c, FromField d) => FromRow (a, b, c, d) 
Instance details

Defined in Database.SQLite.Simple.FromRow

Methods

fromRow :: RowParser (a, b, c, d) #

(FromField a, FromField b, FromField c, FromField d, FromField e) => FromRow (a, b, c, d, e) 
Instance details

Defined in Database.SQLite.Simple.FromRow

Methods

fromRow :: RowParser (a, b, c, d, e) #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f) => FromRow (a, b, c, d, e, f) 
Instance details

Defined in Database.SQLite.Simple.FromRow

Methods

fromRow :: RowParser (a, b, c, d, e, f) #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f, FromField g) => FromRow (a, b, c, d, e, f, g) 
Instance details

Defined in Database.SQLite.Simple.FromRow

Methods

fromRow :: RowParser (a, b, c, d, e, f, g) #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f, FromField g, FromField h) => FromRow (a, b, c, d, e, f, g, h) 
Instance details

Defined in Database.SQLite.Simple.FromRow

Methods

fromRow :: RowParser (a, b, c, d, e, f, g, h) #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f, FromField g, FromField h, FromField i) => FromRow (a, b, c, d, e, f, g, h, i) 
Instance details

Defined in Database.SQLite.Simple.FromRow

Methods

fromRow :: RowParser (a, b, c, d, e, f, g, h, i) #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f, FromField g, FromField h, FromField i, FromField j) => FromRow (a, b, c, d, e, f, g, h, i, j) 
Instance details

Defined in Database.SQLite.Simple.FromRow

Methods

fromRow :: RowParser (a, b, c, d, e, f, g, h, i, j) #

data DBPipeEnv Source #

Instances

Instances details
Monad m => MonadReader DBPipeEnv (DBPipeM m) Source # 
Instance details

Defined in DBPipe.SQLite

Methods

ask :: DBPipeM m DBPipeEnv #

local :: (DBPipeEnv -> DBPipeEnv) -> DBPipeM m a -> DBPipeM m a #

reader :: (DBPipeEnv -> a) -> DBPipeM m a #

data DBPipeOpts Source #

Constructors

DBPipeOpts 

Fields

runPipe :: MonadIO m => DBPipeEnv -> m () Source #

data DBPipeM (m :: Type -> Type) a Source #

Instances

Instances details
MonadTrans DBPipeM Source # 
Instance details

Defined in DBPipe.SQLite

Methods

lift :: Monad m => m a -> DBPipeM m a #

Monad m => MonadReader DBPipeEnv (DBPipeM m) Source # 
Instance details

Defined in DBPipe.SQLite

Methods

ask :: DBPipeM m DBPipeEnv #

local :: (DBPipeEnv -> DBPipeEnv) -> DBPipeM m a -> DBPipeM m a #

reader :: (DBPipeEnv -> a) -> DBPipeM m a #

MonadIO m => MonadIO (DBPipeM m) Source # 
Instance details

Defined in DBPipe.SQLite

Methods

liftIO :: IO a -> DBPipeM m a #

Applicative m => Applicative (DBPipeM m) Source # 
Instance details

Defined in DBPipe.SQLite

Methods

pure :: a -> DBPipeM m a #

(<*>) :: DBPipeM m (a -> b) -> DBPipeM m a -> DBPipeM m b #

liftA2 :: (a -> b -> c) -> DBPipeM m a -> DBPipeM m b -> DBPipeM m c #

(*>) :: DBPipeM m a -> DBPipeM m b -> DBPipeM m b #

(<*) :: DBPipeM m a -> DBPipeM m b -> DBPipeM m a #

Functor m => Functor (DBPipeM m) Source # 
Instance details

Defined in DBPipe.SQLite

Methods

fmap :: (a -> b) -> DBPipeM m a -> DBPipeM m b #

(<$) :: a -> DBPipeM m b -> DBPipeM m a #

Monad m => Monad (DBPipeM m) Source # 
Instance details

Defined in DBPipe.SQLite

Methods

(>>=) :: DBPipeM m a -> (a -> DBPipeM m b) -> DBPipeM m b #

(>>) :: DBPipeM m a -> DBPipeM m b -> DBPipeM m b #

return :: a -> DBPipeM m a #

MonadUnliftIO m => MonadUnliftIO (DBPipeM m) Source # 
Instance details

Defined in DBPipe.SQLite

Methods

withRunInIO :: ((forall a. DBPipeM m a -> IO a) -> IO b) -> DBPipeM m b #

select :: forall b args a (m :: Type -> Type). (ToQuery a b, FromRow b, ToRow args, MonadIO m) => a -> args -> DBPipeM m [b] Source #

select_ :: forall a b (m :: Type -> Type). (ToQuery a b, FromRow b, MonadIO m) => a -> DBPipeM m [b] Source #

update :: forall {k} a args (b :: k) (m :: Type -> Type). (ToQuery a b, ToRow args, MonadIO m) => a -> args -> DBPipeM m () Source #

update_ :: forall a (m :: Type -> Type). (ToQuery a (), MonadIO m) => a -> DBPipeM m () Source #

insert :: forall {k} a args (b :: k) (m :: Type -> Type). (ToQuery a b, ToRow args, MonadIO m) => a -> args -> DBPipeM m () Source #

insert_ :: forall a (m :: Type -> Type). (ToQuery a (), MonadIO m) => a -> DBPipeM m () Source #

ddl :: forall a (m :: Type -> Type). (ToQuery a (), MonadIO m) => a -> DBPipeM m () Source #

transactional :: forall a (m :: Type -> Type). MonadUnliftIO m => DBPipeM m a -> DBPipeM m () Source #

transactional_ :: forall a m. MonadUnliftIO m => DBPipeEnv -> Connection -> m a -> m () Source #

commitAll :: forall (m :: Type -> Type). MonadIO m => DBPipeM m () Source #

withDB :: forall a m. MonadIO m => DBPipeEnv -> DBPipeM m a -> m a Source #

shutdown :: MonadIO m => Bool -> DBPipeEnv -> m () Source #