Safe Haskell | None |
---|
Database.Sql.Simple
- data Query
- specify :: Backend b => proxy ((b :: *) : `[]`) -> Text -> Query -> Query
- newtype Only a = Only {
- fromOnly :: a
- data h :. t = h :. t
- data Sql l a
- class Elem a as
- class Typeable b => Backend b where
- data ConnectInfo b
- type ToRow b :: * -> Constraint
- type FromRow b :: * -> Constraint
- class Backend b => Transaction b
- withConnection :: (Backend b, Elem b bs) => ConnectInfo b -> (b -> Sql bs a) -> IO a
- connect :: Backend b => ConnectInfo b -> IO b
- close :: Backend b => b -> IO ()
- execute :: (ToRow b q, Backend b) => b -> Query -> q -> Sql bs ()
- execute_ :: Backend b => b -> Query -> Sql bs ()
- query :: (Backend b, FromRow b r, ToRow b q) => b -> Query -> q -> Sql bs [r]
- query_ :: (FromRow b r, Backend b) => b -> Query -> Sql bs [r]
- fold :: (Backend b, FromRow b r, ToRow b q) => b -> Query -> q -> a -> (a -> r -> IO a) -> IO a
- fold_ :: (Backend b, FromRow b r) => b -> Query -> a -> (a -> r -> IO a) -> IO a
- forEach :: (Backend b, FromRow b r, ToRow b q) => b -> Query -> q -> (r -> IO ()) -> IO ()
- forEach_ :: (Backend b, FromRow b r) => b -> Query -> (r -> IO ()) -> IO ()
- begin :: Transaction b => b -> Sql bs ()
- commit :: Transaction b => b -> Sql bs ()
- rollback :: Transaction b => b -> Sql bs ()
- withTransaction :: Transaction b => b -> Sql bs a -> Sql bs a
- sql :: proxy bs -> Sql bs a -> Sql bs a
- (+:+) :: Proxy a -> Proxy b -> Proxy (a ++ b)
- type family a (++) b :: [k]
data type
query
specify :: Backend b => proxy ((b :: *) : `[]`) -> Text -> Query -> QuerySource
add specified query string to Query.
example:
q = specify sqlite "sqlite query" "common query"
parameter
other
Instances
MonadBase IO (Sql l) | |
MonadBaseControl IO (Sql l) | |
Monad (Sql l) | |
Functor (Sql l) | |
Applicative (Sql l) | |
MonadThrow (Sql l) | |
MonadCatch (Sql l) | |
MonadMask (Sql l) | |
MonadIO (Sql l) |
class Typeable b => Backend b Source
Associated Types
data ConnectInfo b Source
type ToRow b :: * -> ConstraintSource
type FromRow b :: * -> ConstraintSource
class Backend b => Transaction b Source
connection
withConnection :: (Backend b, Elem b bs) => ConnectInfo b -> (b -> Sql bs a) -> IO aSource
connect :: Backend b => ConnectInfo b -> IO bSource
execute query
fold :: (Backend b, FromRow b r, ToRow b q) => b -> Query -> q -> a -> (a -> r -> IO a) -> IO aSource
transaction
begin :: Transaction b => b -> Sql bs ()Source
commit :: Transaction b => b -> Sql bs ()Source
rollback :: Transaction b => b -> Sql bs ()Source
withTransaction :: Transaction b => b -> Sql bs a -> Sql bs aSource
specify backend
sql (sqlite +:+ postgresql) $ query