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) HandleInvalidated() []*pgconn.StatementDescription
- func (c *LRUCache) Invalidate(sql string)
- func (c *LRUCache) InvalidateAll()
- func (c *LRUCache) Len() int
- func (c *LRUCache) Put(sd *pgconn.StatementDescription)
- type UnlimitedCache
- func (c *UnlimitedCache) Cap() int
- func (c *UnlimitedCache) Get(sql string) *pgconn.StatementDescription
- func (c *UnlimitedCache) HandleInvalidated() []*pgconn.StatementDescription
- func (c *UnlimitedCache) Invalidate(sql string)
- func (c *UnlimitedCache) InvalidateAll()
- func (c *UnlimitedCache) Len() int
- func (c *UnlimitedCache) Put(sd *pgconn.StatementDescription)
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() // HandleInvalidated returns a slice of all statement descriptions invalidated since the last call to HandleInvalidated. HandleInvalidated() []*pgconn.StatementDescription // 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) HandleInvalidated ¶
func (c *LRUCache) HandleInvalidated() []*pgconn.StatementDescription
HandleInvalidated returns a slice of all statement descriptions invalidated since the last call to HandleInvalidated. Typically, the caller will then deallocate them.
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.
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) HandleInvalidated ¶
func (c *UnlimitedCache) HandleInvalidated() []*pgconn.StatementDescription
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.