1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
module Database.Persist.SqlBackend.Internal.StatementCache where
import Data.Text (Text)
import Database.Persist.SqlBackend.Internal.Statement
-- | A statement cache used to lookup statements that have already been prepared
-- for a given query.
--
-- @since 2.13.3
data StatementCache = StatementCache
{ statementCacheLookup :: StatementCacheKey -> IO (Maybe Statement)
, statementCacheInsert :: StatementCacheKey -> Statement -> IO ()
, statementCacheClear :: IO ()
, statementCacheSize :: IO Int
}
newtype StatementCacheKey = StatementCacheKey { cacheKey :: Text }
-- Wrapping around this to allow for more efficient keying mechanisms
-- in the future, perhaps.
-- | Construct a `StatementCacheKey` from a raw SQL query.
mkCacheKeyFromQuery :: Text -> StatementCacheKey
mkCacheKeyFromQuery = StatementCacheKey
|