stmtcache

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Oct 21, 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()

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

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

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.

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

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

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.

Jump to

Keyboard shortcuts

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