-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Backend for the persistent library using postgresql. -- -- Based on the postgresql-simple package @package persistent-postgresql @version 2.6.2 -- | A postgresql backend for persistent. module Database.Persist.Postgresql -- | Create a PostgreSQL connection pool and run the given action. The pool -- is properly released after the action finishes using it. Note that you -- should not use the given ConnectionPool outside the action -- since it may be already been released. withPostgresqlPool :: (MonadBaseControl IO m, MonadLogger m, MonadIO m, IsSqlBackend backend) => ConnectionString -> Int -> (Pool backend -> m a) -> m a -- | Same as withPostgresPool, but takes a callback for obtaining -- the server version (to workaround an Amazon Redshift bug). withPostgresqlPoolWithVersion :: (MonadBaseControl IO m, MonadLogger m, MonadIO m, IsSqlBackend backend) => (Connection -> IO (Maybe Double)) -> ConnectionString -> Int -> (Pool backend -> m a) -> m a -- | Same as withPostgresqlPool, but instead of opening a pool of -- connections, only one connection is opened. withPostgresqlConn :: (MonadIO m, MonadBaseControl IO m, MonadLogger m, IsSqlBackend backend) => ConnectionString -> (backend -> m a) -> m a -- | Same as withPostgresqlConn, but takes a callback for obtaining -- the server version (to workaround an Amazon Redshift bug). withPostgresqlConnWithVersion :: (MonadIO m, MonadBaseControl IO m, MonadLogger m, IsSqlBackend backend) => (Connection -> IO (Maybe Double)) -> ConnectionString -> (backend -> m a) -> m a -- | Create a PostgreSQL connection pool. Note that it's your -- responsibility to properly close the connection pool when unneeded. -- Use withPostgresqlPool for an automatic resource control. createPostgresqlPool :: (MonadIO m, MonadBaseControl IO m, MonadLogger m, IsSqlBackend backend) => ConnectionString -> Int -> m (Pool backend) -- | Same as createPostgresqlPool, but additionally takes a callback -- function for some connection-specific tweaking to be performed after -- connection creation. This could be used, for example, to change the -- schema. For more information, see: -- -- -- https://groups.google.com/d/msg/yesodweb/qUXrEN_swEo/O0pFwqwQIdcJ createPostgresqlPoolModified :: (MonadIO m, MonadBaseControl IO m, MonadLogger m, IsSqlBackend backend) => (Connection -> IO ()) -> ConnectionString -> Int -> m (Pool backend) -- | Same as other similarly-named functions in this module, but takes -- callbacks for obtaining the server version (to workaround an Amazon -- Redshift bug) and connection-specific tweaking (to change the schema). createPostgresqlPoolModifiedWithVersion :: (MonadIO m, MonadBaseControl IO m, MonadLogger m, IsSqlBackend backend) => (Connection -> IO (Maybe Double)) -> (Connection -> IO ()) -> ConnectionString -> Int -> m (Pool backend) -- | A libpq connection string. A simple example of connection -- string would be "host=localhost port=5432 user=test dbname=test -- password=test". Please read libpq's documentation at -- http://www.postgresql.org/docs/9.1/static/libpq-connect.html -- for more details on how to create such strings. type ConnectionString = ByteString -- | Information required to connect to a PostgreSQL database using -- persistent's generic facilities. These values are the same -- that are given to withPostgresqlPool. data PostgresConf PostgresConf :: ConnectionString -> Int -> PostgresConf -- | The connection string. [pgConnStr] :: PostgresConf -> ConnectionString -- | How many connections should be held on the connection pool. [pgPoolSize] :: PostgresConf -> Int -- | Generate a Connection from a Connection openSimpleConn :: (IsSqlBackend backend) => LogFunc -> Connection -> IO backend -- | get the SQL string for the table that a PeristEntity represents Useful -- for raw SQL queries tableName :: (PersistEntity record) => record -> Text -- | get the SQL string for the field that an EntityField represents Useful -- for raw SQL queries fieldName :: (PersistEntity record) => EntityField record typ -> Text -- | 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 Data.Data.Data Database.Persist.Postgresql.PostgresConf instance GHC.Read.Read Database.Persist.Postgresql.PostgresConf instance GHC.Show.Show Database.Persist.Postgresql.PostgresConf instance GHC.Classes.Ord Database.Persist.Postgresql.Unknown instance GHC.Read.Read Database.Persist.Postgresql.Unknown instance GHC.Show.Show Database.Persist.Postgresql.Unknown instance GHC.Classes.Eq Database.Persist.Postgresql.Unknown instance GHC.Show.Show Database.Persist.Postgresql.PostgresServerVersionError instance GHC.Exception.Exception Database.Persist.Postgresql.PostgresServerVersionError instance Database.PostgreSQL.Simple.ToField.ToField Database.Persist.Postgresql.P instance Database.PostgreSQL.Simple.FromField.FromField Database.Persist.Postgresql.Unknown instance Database.PostgreSQL.Simple.ToField.ToField Database.Persist.Postgresql.Unknown instance Data.Aeson.Types.FromJSON.FromJSON Database.Persist.Postgresql.PostgresConf instance Database.Persist.Class.PersistConfig.PersistConfig Database.Persist.Postgresql.PostgresConf