stmtcache

package
v5.5.3 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 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 StatementName

func StatementName(sql string) string

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

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

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

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

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