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 ¶ added in v1.8.0
Click to show internal directories.
Click to hide internal directories.