-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | common middle-level sql client. -- -- please read README.md -- https://github.com/philopon/sql-simple/blob/master/README.md @package sql-simple @version 0.1.0.0 module Database.Sql.Simple.Internal data Query Query :: Text -> (HashMap TypeRep Text) -> Query newtype Sql (l :: [*]) a Sql :: IO a -> Sql a unSql :: Sql a -> IO a getQuery :: TypeRep -> Query -> Text newtype Only a Only :: a -> Only a fromOnly :: Only a -> a data (:.) h t (:.) :: h -> t -> :. h t class Elem a (as :: [*]) withConnection :: (Backend b, Elem b bs) => ConnectInfo b -> (b -> Sql bs a) -> IO a -- | specify sql backends. sql :: proxy bs -> Sql bs a -> Sql bs a class Typeable b => Backend b where data family ConnectInfo b type family ToRow b :: * -> Constraint type family FromRow b :: * -> Constraint withTransaction c action = mask $ \ restore -> do { begin c; r <- restore action `onException` rollback c; commit c; return r } connect :: Backend b => ConnectInfo b -> IO b close :: Backend b => b -> IO () execute :: (Backend b, ToRow b q) => b -> Query -> q -> Sql c () execute_ :: Backend b => b -> Query -> Sql c () query :: (Backend b, FromRow b r, ToRow b q) => b -> Query -> q -> Sql c [r] query_ :: (Backend b, FromRow b r) => b -> Query -> Sql c [r] begin :: Backend b => b -> Sql c () commit :: Backend b => b -> Sql c () rollback :: Backend b => b -> Sql c () withTransaction :: Backend b => b -> Sql c a -> Sql c a -- | join sql backends. (+:+) :: Proxy a -> Proxy b -> Proxy (a ++ b) -- | add specified query string to Query. -- -- example: -- --
-- q = specify sqlite sqlite query common query --specify :: Backend b => proxy ((b :: *) : '[]) -> Text -> Query -> Query instance [overlap ok] Show Query instance [overlap ok] Eq Query instance [overlap ok] Functor (Sql l) instance [overlap ok] Applicative (Sql l) instance [overlap ok] Monad (Sql l) instance [overlap ok] MonadIO (Sql l) instance [overlap ok] MonadThrow (Sql l) instance [overlap ok] MonadCatch (Sql l) instance [overlap ok] MonadMask (Sql l) instance [overlap ok] Elem k a as => Elem k a ((':) * a' as) instance [overlap ok] Elem * a ((':) * a as) instance [overlap ok] IsString Query module Database.Sql.Simple data Query -- | add specified query string to Query. -- -- example: -- --
-- q = specify sqlite sqlite query common query --specify :: Backend b => proxy ((b :: *) : '[]) -> Text -> Query -> Query newtype Only a Only :: a -> Only a fromOnly :: Only a -> a data (:.) h t (:.) :: h -> t -> :. h t data Sql (l :: [*]) a class Elem a (as :: [*]) class Typeable b => Backend b where data family ConnectInfo b type family ToRow b :: * -> Constraint type family FromRow b :: * -> Constraint withTransaction c action = mask $ \ restore -> do { begin c; r <- restore action `onException` rollback c; commit c; return r } connect :: Backend b => ConnectInfo b -> IO b close :: Backend b => b -> IO () execute :: (Backend b, ToRow b q) => b -> Query -> q -> Sql c () execute_ :: Backend b => b -> Query -> Sql c () query :: (Backend b, FromRow b r, ToRow b q) => b -> Query -> q -> Sql c [r] query_ :: (Backend b, FromRow b r) => b -> Query -> Sql c [r] begin :: Backend b => b -> Sql c () commit :: Backend b => b -> Sql c () rollback :: Backend b => b -> Sql c () withTransaction :: Backend b => b -> Sql c a -> Sql c a withConnection :: (Backend b, Elem b bs) => ConnectInfo b -> (b -> Sql bs a) -> IO a -- | specify sql backends. sql :: proxy bs -> Sql bs a -> Sql bs a -- | join sql backends. (+:+) :: Proxy a -> Proxy b -> Proxy (a ++ b)