store

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewStoreNode

func NewStoreNode(database db.DBTX) pgmesh.Node[*ReadQueries, *StoreQueries]

NewStoreNode creates a pgmesh node backed by database.

Types

type ReadQuerier

type ReadQuerier interface {
	// GetAnalysis executes the generated GetAnalysis query.
	GetAnalysis(ctx context.Context, arg *db.GetAnalysisParams) (*db.Analysis, error)
	// GetUser executes the generated GetUser query.
	GetUser(ctx context.Context, arg *db.GetUserParams) (*db.User, error)
	// ListUsers executes the generated ListUsers query.
	ListUsers(ctx context.Context) ([]*db.User, error)
}

ReadQuerier exposes generated read queries.

type ReadQueries

type ReadQueries struct {
	// contains filtered or unexported fields
}

ReadQueries exposes read-only generated queries.

func NewReadQueries

func NewReadQueries(database db.DBTX) *ReadQueries

NewReadQueries creates a read-only query wrapper.

func (*ReadQueries) GetAnalysis

func (q *ReadQueries) GetAnalysis(ctx context.Context, arg *db.GetAnalysisParams) (*db.Analysis, error)

GetAnalysis executes the generated GetAnalysis query.

func (*ReadQueries) GetUser

func (q *ReadQueries) GetUser(ctx context.Context, arg *db.GetUserParams) (*db.User, error)

GetUser executes the generated GetUser query.

func (*ReadQueries) ListUsers

func (q *ReadQueries) ListUsers(ctx context.Context) ([]*db.User, error)

ListUsers executes the generated ListUsers query.

func (*ReadQueries) WithTx

func (q *ReadQueries) WithTx(tx pgx.Tx) *ReadQueries

WithTx returns a read wrapper that executes queries through tx.

type RouteOption

type RouteOption func(*routeOptions)

RouteOption customizes routing for one generated query call.

func ReadFromPrimary

func ReadFromPrimary() RouteOption

ReadFromPrimary routes a read query to the shard's primary.

func WithTx

func WithTx(tx pgx.Tx) RouteOption

WithTx routes a query through tx and suppresses write mirrors.

type ShardResolver

type ShardResolver[SK any] interface {
	// Tenant resolves the "tenant" shard route.
	Tenant(tenantID int64) SK
}

ShardResolver resolves generated query parameters to shard keys.

type ShardedQueries

type ShardedQueries[SK any] struct {
	// contains filtered or unexported fields
}

ShardedQueries routes generated queries through a pgmesh mesh.

func NewShardedQueries

func NewShardedQueries[SK any](mesh *pgmesh.Mesh[*ReadQueries, *StoreQueries, SK], resolver ShardResolver[SK]) *ShardedQueries[SK]

NewShardedQueries creates a routed query facade.

func (*ShardedQueries[SK]) CreateUser

func (q *ShardedQueries[SK]) CreateUser(ctx context.Context, arg *db.CreateUserParams, routeOptions ...RouteOption) (*db.User, error)

CreateUser executes the generated query on its resolved shard.

func (*ShardedQueries[SK]) GetAnalysis

func (q *ShardedQueries[SK]) GetAnalysis(ctx context.Context, arg *db.GetAnalysisParams, routeOptions ...RouteOption) (*db.Analysis, error)

GetAnalysis executes the generated query on its resolved shard.

func (*ShardedQueries[SK]) GetUser

func (q *ShardedQueries[SK]) GetUser(ctx context.Context, arg *db.GetUserParams, routeOptions ...RouteOption) (*db.User, error)

GetUser executes the generated query on its resolved shard.

type StoreQuerier

type StoreQuerier interface {
	ReadQuerier
	WriteQuerier
}

StoreQuerier combines the generated read and write query interfaces.

type StoreQueries

type StoreQueries struct {
	*ReadQueries
	*WriteQueries
}

StoreQueries combines read-only and primary-capable generated queries.

func NewStoreQueries

func NewStoreQueries(database db.DBTX) *StoreQueries

NewStoreQueries creates a combined query wrapper.

func (*StoreQueries) WithMirrors

func (q *StoreQueries) WithMirrors(qs ...*StoreQueries) *StoreQueries

WithMirrors returns a copy that also writes to the supplied mirrors.

func (*StoreQueries) WithTx

func (q *StoreQueries) WithTx(tx pgx.Tx) *StoreQueries

WithTx returns a store wrapper that executes queries through tx.

type WriteQuerier

type WriteQuerier interface {
	// CopyUsers executes the generated CopyUsers query.
	CopyUsers(ctx context.Context, arg []*db.CopyUsersParams) (int64, error)
	// CreateUser executes the generated CreateUser query.
	CreateUser(ctx context.Context, arg *db.CreateUserParams) (*db.User, error)
}

WriteQuerier exposes generated write queries.

type WriteQueries

type WriteQueries struct {
	// contains filtered or unexported fields
}

WriteQueries exposes primary-capable generated queries.

func NewWriteQueries

func NewWriteQueries(database db.DBTX) *WriteQueries

NewWriteQueries creates a primary-capable query wrapper.

func (*WriteQueries) CopyUsers

func (q *WriteQueries) CopyUsers(ctx context.Context, arg []*db.CopyUsersParams) (int64, error)

CopyUsers executes the generated CopyUsers query.

func (*WriteQueries) CreateUser

func (q *WriteQueries) CreateUser(ctx context.Context, arg *db.CreateUserParams) (*db.User, error)

CreateUser executes the generated CreateUser query.

func (*WriteQueries) WithMirrors

func (q *WriteQueries) WithMirrors(qs ...*WriteQueries) *WriteQueries

WithMirrors returns a copy that also writes to the supplied mirrors.

func (*WriteQueries) WithTx

func (q *WriteQueries) WithTx(tx pgx.Tx) *WriteQueries

WithTx returns a write wrapper that executes queries through tx.

Jump to

Keyboard shortcuts

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