-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Backend for the persistent library using sqlite3.
--
-- This package includes a thin sqlite3 wrapper based on the
-- direct-sqlite package, as well as the entire C library, so there are
-- no system dependencies.
@package persistent-sqlite
@version 2.6.0.1
-- | A port of the direct-sqlite package for dealing directly with
-- PersistValues.
module Database.Sqlite
data Connection
data Statement
data Error
ErrorOK :: Error
ErrorError :: Error
ErrorInternal :: Error
ErrorPermission :: Error
ErrorAbort :: Error
ErrorBusy :: Error
ErrorLocked :: Error
ErrorNoMemory :: Error
ErrorReadOnly :: Error
ErrorInterrupt :: Error
ErrorIO :: Error
ErrorNotFound :: Error
ErrorCorrupt :: Error
ErrorFull :: Error
ErrorCan'tOpen :: Error
ErrorProtocol :: Error
ErrorEmpty :: Error
ErrorSchema :: Error
ErrorTooBig :: Error
ErrorConstraint :: Error
ErrorMismatch :: Error
ErrorMisuse :: Error
ErrorNoLargeFileSupport :: Error
ErrorAuthorization :: Error
ErrorFormat :: Error
ErrorRange :: Error
ErrorNotAConnection :: Error
ErrorRow :: Error
ErrorDone :: Error
-- | A custom exception type to make it easier to catch exceptions.
--
-- Since 2.1.3
data SqliteException
SqliteException :: !Error -> !Text -> !Text -> SqliteException
[seError] :: SqliteException -> !Error
[seFunctionName] :: SqliteException -> !Text
[seDetails] :: SqliteException -> !Text
data StepResult
Row :: StepResult
Done :: StepResult
-- | Configuration option for SQLite to be used together with the
-- config function.
--
-- Since 2.1.4
data Config
-- | A function to be used for logging
ConfigLogFn :: LogFunction -> Config
-- | Since 2.1.4
data LogFunction
open :: Text -> IO Connection
close :: Connection -> IO ()
prepare :: Connection -> Text -> IO Statement
step :: Statement -> IO StepResult
reset :: Connection -> Statement -> IO ()
finalize :: Statement -> IO ()
bindBlob :: Statement -> Int -> ByteString -> IO ()
bindDouble :: Statement -> Int -> Double -> IO ()
bindInt :: Statement -> Int -> Int -> IO ()
bindInt64 :: Statement -> Int -> Int64 -> IO ()
bindNull :: Statement -> Int -> IO ()
bindText :: Statement -> Int -> Text -> IO ()
bind :: Statement -> [PersistValue] -> IO ()
column :: Statement -> Int -> IO PersistValue
columns :: Statement -> IO [PersistValue]
changes :: Connection -> IO Int64
-- | Wraps a given function to a LogFunction to be further used with
-- ConfigLogFn. First argument of given function will take error
-- code, second - log message. Returned value should be released with
-- freeLogFunction when no longer required.
mkLogFunction :: (Int -> String -> IO ()) -> IO LogFunction
-- | Releases a native FunPtr for the LogFunction.
--
-- Since 2.1.4
freeLogFunction :: LogFunction -> IO ()
-- | Sets SQLite global configuration parameter. See SQLite documentation
-- for the sqlite3_config function. In short, this must be called
-- prior to any other SQLite function if you want the call to succeed.
--
-- Since 2.1.4
config :: Config -> IO ()
instance GHC.Show.Show Database.Sqlite.ColumnType
instance GHC.Classes.Eq Database.Sqlite.ColumnType
instance GHC.Show.Show Database.Sqlite.StepResult
instance GHC.Classes.Eq Database.Sqlite.StepResult
instance GHC.Show.Show Database.Sqlite.Error
instance GHC.Classes.Eq Database.Sqlite.Error
instance GHC.Show.Show Database.Sqlite.SqliteException
instance GHC.Exception.Exception Database.Sqlite.SqliteException
-- | A sqlite backend for persistent.
--
-- Note: If you prepend WAL=off to your connection string, it
-- will disable the write-ahead log. For more information, see
-- https://github.com/yesodweb/persistent/issues/363.
module Database.Persist.Sqlite
-- | Run the given action with a connection pool.
--
-- Like createSqlitePool, this should not be used with
-- :memory:.
withSqlitePool :: (MonadBaseControl IO m, MonadIO m, MonadLogger m, IsSqlBackend backend) => Text -> Int -> (Pool backend -> m a) -> m a
withSqliteConn :: (MonadBaseControl IO m, MonadIO m, MonadLogger m, IsSqlBackend backend) => Text -> (backend -> m a) -> m a
-- | Create a pool of SQLite connections.
--
-- Note that this should not be used with the :memory:
-- connection string, as the pool will regularly remove connections,
-- destroying your database. Instead, use withSqliteConn.
createSqlitePool :: (MonadIO m, MonadLogger m, MonadBaseControl IO m, IsSqlBackend backend) => Text -> Int -> m (Pool backend)
-- | Information required to connect to a sqlite database
data SqliteConf
SqliteConf :: Text -> Int -> SqliteConf
[sqlDatabase] :: SqliteConf -> Text
[sqlPoolSize] :: SqliteConf -> Int
-- | A convenience helper which creates a new database connection and runs
-- the given block, handling MonadResource and
-- MonadLogger requirements. Note that all log messages are
-- discarded.
--
-- Since 1.1.4
runSqlite :: (MonadBaseControl IO m, MonadIO m, IsSqlBackend backend) => Text -> ReaderT backend (NoLoggingT (ResourceT m)) a -> m a
-- | Wrap up a raw Connection as a Persistent SQL Connection.
--
-- Since 1.1.5
wrapConnection :: (IsSqlBackend backend) => Connection -> LogFunc -> IO backend
-- | Mock a migration even when the database is not present. This function
-- performs the same functionality of printMigration with the
-- difference that an actualy database isn't needed for it.
mockMigration :: Migration -> IO ()
instance GHC.Show.Show Database.Persist.Sqlite.SqliteConf
instance Data.Aeson.Types.FromJSON.FromJSON Database.Persist.Sqlite.SqliteConf
instance Database.Persist.Class.PersistConfig.PersistConfig Database.Persist.Sqlite.SqliteConf