Documentation ¶
Overview ¶
Package stmtcache is a cache that can be used to implement lazy prepared statements.
Index ¶
Constants ¶
View Source
const ( ModePrepare = iota // Cache should prepare named statements. ModeDescribe // Cache should prepare the anonymous prepared statement to only fetch the description of the statement. )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache interface { // Get returns the prepared statement description for sql preparing or describing the sql on the server as needed. Get(ctx context.Context, sql string) (*pgconn.StatementDescription, error) // Clear removes all entries in the cache. Any prepared statements will be deallocated from the PostgreSQL session. Clear(ctx context.Context) error // StatementErrored informs the cache that the given statement resulted in an error when it // was last used against the database. In some cases, this will cause the cache to maer that // statement as bad. The bad statement will instead be flushed during the next call to Get // that occurs outside of a failed transaction. StatementErrored(sql string, err error) // Len returns the number of cached prepared statement descriptions. Len() int // Cap returns the maximum number of cached prepared statement descriptions. Cap() int // Mode returns the mode of the cache (ModePrepare or ModeDescribe) Mode() int }
Cache prepares and caches prepared statement descriptions.
type LRU ¶
type LRU struct {
// contains filtered or unexported fields
}
LRU implements Cache with a Least Recently Used (LRU) cache.
func NewLRU ¶
NewLRU creates a new LRU. mode is either ModePrepare or ModeDescribe. cap is the maximum size of the cache.
func (*LRU) Clear ¶
Clear removes all entries in the cache. Any prepared statements will be deallocated from the PostgreSQL session.
func (*LRU) Get ¶
Get returns the prepared statement description for sql preparing or describing the sql on the server as needed.
func (*LRU) StatementErrored ¶
Click to show internal directories.
Click to hide internal directories.