stmtcache

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 26, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package stmtcache is a cache for statement descriptions.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsStatementInvalid

func IsStatementInvalid(err error) bool

func NextStatementName

func NextStatementName() string

NextStatementName returns a statement name that will be unique for the lifetime of the program.

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

func NewLRUCache(cap int) *LRUCache

NewLRUCache creates a new LRUCache. cap is the maximum size of the cache.

func (*LRUCache) Cap

func (c *LRUCache) Cap() int

Cap returns the maximum number of cached prepared statement descriptions.

func (*LRUCache) Get

Get returns the statement description for sql. Returns nil if not found.

func (*LRUCache) HandleInvalidated

func (c *LRUCache) HandleInvalidated() []*pgconn.StatementDescription

func (*LRUCache) Invalidate

func (c *LRUCache) Invalidate(sql string)

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) Len

func (c *LRUCache) Len() int

Len returns the number of cached prepared 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.

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

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

Put stores sd in the cache. Put panics if sd.SQL is "". Put does nothing if sd.SQL already exists in the cache.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL