persistent-2.17.1.0: Type-safe, multi-backend data serialization.

Safe Haskell | None
Language | Haskell2010

Database.Persist.SqlBackend.StatementCache

Synopsis

- data StatementCache
- data StatementCacheKey
- mkCacheKeyFromQuery :: Text -> StatementCacheKey
- data MkStatementCache = MkStatementCache {
  - statementCacheLookup :: StatementCacheKey -> IO (Maybe Statement)
  - statementCacheInsert :: StatementCacheKey -> Statement -> IO ()
  - statementCacheClear :: IO ()
  - statementCacheSize :: IO Int
  }
- mkSimpleStatementCache :: IORef (Map Text Statement) -> MkStatementCache
- mkStatementCache :: MkStatementCache -> StatementCache

# Documentation

data StatementCache Source #

A statement cache used to lookup statements that have already been prepared for a given query.

Since: 2.13.3

data StatementCacheKey Source #

mkCacheKeyFromQuery :: Text -> StatementCacheKey Source #

Construct a `StatementCacheKey` from a raw SQL query.

data MkStatementCache Source #

Configuration parameters for creating a custom statement cache

Since: 2.13.3

Constructors

MkStatementCache |

Fields

- statementCacheLookup :: StatementCacheKey -> IO (Maybe Statement)

  Retrieve a statement from the cache, or return nothing if it is not found.

  Since: 2.13.3

- statementCacheInsert :: StatementCacheKey -> Statement -> IO ()

  Put a new statement into the cache. An immediate lookup of the statement MUST return the inserted statement for the given cache key. Depending on the implementation, the statement cache MAY choose to evict other statements from the cache within this function.

  Since: 2.13.3

- statementCacheClear :: IO ()

  Remove all statements from the cache. Implementations of this should be sure to call `stmtFinalize` on all statements removed from the cache.

  Since: 2.13.3

- statementCacheSize :: IO Int

  Get the current size of the cache.

  Since: 2.13.3

mkSimpleStatementCache :: IORef (Map Text Statement) -> MkStatementCache Source #

Make a simple statement cache that will cache statements if they are not currently cached.

Since: 2.13.3

mkStatementCache :: MkStatementCache -> StatementCache Source #

Create a statement cache.

Since: 2.13.0