Documentation ¶
Overview ¶
Package stmtcache is a cache for statement descriptions.
Index ¶
- func StatementName(sql string) string
- type Cache
- type LRUCache
- func (c *LRUCache) Cap() int
- func (c *LRUCache) Get(key string) *pgconn.StatementDescription
- func (c *LRUCache) GetInvalidated() []*pgconn.StatementDescription
- func (c *LRUCache) Invalidate(sql string)
- func (c *LRUCache) InvalidateAll()
- func (c *LRUCache) Len() int
- func (c *LRUCache) Put(sd *pgconn.StatementDescription)
- func (c *LRUCache) RemoveInvalidated()
- type UnlimitedCache
- func (c *UnlimitedCache) Cap() int
- func (c *UnlimitedCache) Get(sql string) *pgconn.StatementDescription
- func (c *UnlimitedCache) GetInvalidated() []*pgconn.StatementDescription
- func (c *UnlimitedCache) Invalidate(sql string)
- func (c *UnlimitedCache) InvalidateAll()
- func (c *UnlimitedCache) Len() int
- func (c *UnlimitedCache) Put(sd *pgconn.StatementDescription)
- func (c *UnlimitedCache) RemoveInvalidated()
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func StatementName ¶
StatementName returns a statement name that will be stable for sql across multiple connections and program executions.
Types ¶
type Cache ¶
type Cache interface { // Get returns the statement description for sql. Returns nil if not found. Get(sql string) *pgconn.StatementDescription // Put stores sd in the cache. Put panics if sd.SQL is "". Put does nothing if sd.SQL already exists in the cache. Put(sd *pgconn.StatementDescription) // Invalidate invalidates statement description identified by sql. Does nothing if not found. Invalidate(sql string) // InvalidateAll invalidates all statement descriptions. InvalidateAll() // GetInvalidated returns a slice of all statement descriptions invalidated since the last call to RemoveInvalidated. GetInvalidated() []*pgconn.StatementDescription // RemoveInvalidated removes all invalidated statement descriptions. No other calls to Cache must be made between a // call to GetInvalidated and RemoveInvalidated or RemoveInvalidated may remove statement descriptions that were // never seen by the call to GetInvalidated. RemoveInvalidated() // Len returns the number of cached prepared statement descriptions. Len() int // Cap returns the maximum number of cached prepared statement descriptions. Cap() int }
Cache caches statement descriptions.
type LRUCache ¶
type LRUCache struct {
// contains filtered or unexported fields
}
LRUCache implements Cache with a Least Recently Used (LRU) cache.
func NewLRUCache ¶
NewLRUCache creates a new LRUCache. cap is the maximum size of the cache.
func (*LRUCache) Get ¶
func (c *LRUCache) Get(key string) *pgconn.StatementDescription
Get returns the statement description for sql. Returns nil if not found.
func (*LRUCache) GetInvalidated ¶
func (c *LRUCache) GetInvalidated() []*pgconn.StatementDescription
GetInvalidated returns a slice of all statement descriptions invalidated since the last call to RemoveInvalidated.
func (*LRUCache) Invalidate ¶
Invalidate invalidates statement description identified by sql. Does nothing if not found.
func (*LRUCache) InvalidateAll ¶
func (c *LRUCache) InvalidateAll()
InvalidateAll invalidates all statement descriptions.
func (*LRUCache) Put ¶
func (c *LRUCache) Put(sd *pgconn.StatementDescription)
Put stores sd in the cache. Put panics if sd.SQL is "". Put does nothing if sd.SQL already exists in the cache or sd.SQL has been invalidated and HandleInvalidated has not been called yet.
func (*LRUCache) RemoveInvalidated ¶
func (c *LRUCache) RemoveInvalidated()
RemoveInvalidated removes all invalidated statement descriptions. No other calls to Cache must be made between a call to GetInvalidated and RemoveInvalidated or RemoveInvalidated may remove statement descriptions that were never seen by the call to GetInvalidated.
type UnlimitedCache ¶
type UnlimitedCache struct {
// contains filtered or unexported fields
}
UnlimitedCache implements Cache with no capacity limit.
func NewUnlimitedCache ¶
func NewUnlimitedCache() *UnlimitedCache
NewUnlimitedCache creates a new UnlimitedCache.
func (*UnlimitedCache) Cap ¶
func (c *UnlimitedCache) Cap() int
Cap returns the maximum number of cached prepared statement descriptions.
func (*UnlimitedCache) Get ¶
func (c *UnlimitedCache) Get(sql string) *pgconn.StatementDescription
Get returns the statement description for sql. Returns nil if not found.
func (*UnlimitedCache) GetInvalidated ¶
func (c *UnlimitedCache) GetInvalidated() []*pgconn.StatementDescription
GetInvalidated returns a slice of all statement descriptions invalidated since the last call to RemoveInvalidated.
func (*UnlimitedCache) Invalidate ¶
func (c *UnlimitedCache) Invalidate(sql string)
Invalidate invalidates statement description identified by sql. Does nothing if not found.
func (*UnlimitedCache) InvalidateAll ¶
func (c *UnlimitedCache) InvalidateAll()
InvalidateAll invalidates all statement descriptions.
func (*UnlimitedCache) Len ¶
func (c *UnlimitedCache) Len() int
Len returns the number of cached prepared statement descriptions.
func (*UnlimitedCache) Put ¶
func (c *UnlimitedCache) Put(sd *pgconn.StatementDescription)
Put stores sd in the cache. Put panics if sd.SQL is "". Put does nothing if sd.SQL already exists in the cache.
func (*UnlimitedCache) RemoveInvalidated ¶
func (c *UnlimitedCache) RemoveInvalidated()
RemoveInvalidated removes all invalidated statement descriptions. No other calls to Cache must be made between a call to GetInvalidated and RemoveInvalidated or RemoveInvalidated may remove statement descriptions that were never seen by the call to GetInvalidated.