store

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Analyses

type Analyses interface {
	AnalysesReader
	AnalysesWriter
}

Analyses exposes all queries in its generated store group.

type AnalysesReader

type AnalysesReader interface {
	// GetAnalysis executes the generated GetAnalysis query.
	GetAnalysis(ctx context.Context, arg *GetAnalysisParams, storeOptions ...QueryOption) (*Analysis, error)
	// GetTenantUserAnalysis executes the generated GetTenantUserAnalysis query.
	GetTenantUserAnalysis(ctx context.Context, arg *GetTenantUserAnalysisShardParams, storeOptions ...QueryOption) (*GetTenantUserAnalysisRow, error)
}

AnalysesReader exposes read queries in the Analyses store group.

type AnalysesWriter

type AnalysesWriter interface {
}

AnalysesWriter exposes write queries in the Analyses store group.

type Analysis

type Analysis = db.Analysis

Analysis re-exports Analysis from the sqlc package.

type AnalysisState

type AnalysisState = db.AnalysisState

AnalysisState re-exports AnalysisState from the sqlc package.

type CopyUsersParams

type CopyUsersParams = db.CopyUsersParams

CopyUsersParams re-exports CopyUsersParams from the sqlc package.

type CreateUserParams

type CreateUserParams = db.CreateUserParams

CreateUserParams re-exports CreateUserParams from the sqlc package.

type GetAnalysisParams

type GetAnalysisParams = db.GetAnalysisParams

GetAnalysisParams re-exports GetAnalysisParams from the sqlc package.

type GetTenantUserAnalysisParams

type GetTenantUserAnalysisParams = db.GetTenantUserAnalysisParams

GetTenantUserAnalysisParams re-exports GetTenantUserAnalysisParams from the sqlc package.

type GetTenantUserAnalysisRow

type GetTenantUserAnalysisRow = db.GetTenantUserAnalysisRow

GetTenantUserAnalysisRow re-exports GetTenantUserAnalysisRow from the sqlc package.

type GetTenantUserAnalysisShardParams

type GetTenantUserAnalysisShardParams struct {
	UserID     int64
	AnalysisID int64
	TenantID   int64
}

GetTenantUserAnalysisShardParams combines sqlc and routing-only shard parameters for GetTenantUserAnalysis.

type GetUserParams

type GetUserParams = db.GetUserParams

GetUserParams re-exports GetUserParams from the sqlc package.

type ListP2PMessageIDsByChatParams

type ListP2PMessageIDsByChatParams = db.ListP2PMessageIDsByChatParams

ListP2PMessageIDsByChatParams re-exports ListP2PMessageIDsByChatParams from the sqlc package.

type ListP2PMessageIDsByChatShardParams

type ListP2PMessageIDsByChatShardParams struct {
	Limit           int32
	UserID          int64
	PeerID          int64
	CreatedSince    pgtype.Timestamptz
	LastID          interface{}
	ToUserOrGroupID int64
	InGroup         bool
}

ListP2PMessageIDsByChatShardParams combines sqlc and routing-only shard parameters for ListP2PMessageIDsByChat.

type ListP2PMessagesByChatParams

type ListP2PMessagesByChatParams = db.ListP2PMessagesByChatParams

ListP2PMessagesByChatParams re-exports ListP2PMessagesByChatParams from the sqlc package.

type ListP2PMessagesByChatShardParams

type ListP2PMessagesByChatShardParams struct {
	Limit           int32
	UserID          int64
	PeerID          int64
	CreatedSince    pgtype.Timestamptz
	LastID          interface{}
	ToUserOrGroupID int64
	InGroup         bool
}

ListP2PMessagesByChatShardParams combines sqlc and routing-only shard parameters for ListP2PMessagesByChat.

type Message

type Message = db.Message

Message re-exports Message from the sqlc package.

type NullAnalysisState

type NullAnalysisState = db.NullAnalysisState

NullAnalysisState re-exports NullAnalysisState from the sqlc package.

type QueryMessage

type QueryMessage interface {
	QueryMessageReader
	QueryMessageWriter
}

QueryMessage exposes all queries in its generated store group.

type QueryMessageReader

type QueryMessageReader interface {
	// ListP2PMessageIDsByChat executes the generated ListP2PMessageIDsByChat query.
	ListP2PMessageIDsByChat(ctx context.Context, arg *ListP2PMessageIDsByChatShardParams, storeOptions ...QueryOption) ([]interface{}, error)
	// ListP2PMessagesByChat executes the generated ListP2PMessagesByChat query.
	ListP2PMessagesByChat(ctx context.Context, arg *ListP2PMessagesByChatShardParams, storeOptions ...QueryOption) ([]*Message, error)
}

QueryMessageReader exposes read queries in the QueryMessage store group.

type QueryMessageWriter

type QueryMessageWriter interface {
}

QueryMessageWriter exposes write queries in the QueryMessage store group.

type QueryOption

type QueryOption func(*queryOptions)

QueryOption customizes routing for one generated query call.

func ReadFromPrimary

func ReadFromPrimary() QueryOption

ReadFromPrimary routes a read query to the primary database.

func WithTx

func WithTx(tx pgx.Tx) QueryOption

WithTx executes a query through tx and suppresses write mirrors.

type ShardResolver

type ShardResolver[SK any] interface {
	// Messagekey resolves the "messageKey" shard route.
	Messagekey(userID int64, toUserOrGroupID int64, inGroup bool) SK
	// Tenant resolves the "tenant" shard route.
	Tenant(tenantID int64) SK
}

ShardResolver resolves generated query parameters to shard keys.

type ShardedOption

type ShardedOption func(*shardedOptions)

ShardedOption customizes a sharded topology.

func WithReplicaSet

func WithReplicaSet(name string, primary db.DBTX, replicas ...db.DBTX) ShardedOption

WithReplicaSet appends a named primary and its optional read replicas.

func WithVShardMapping

func WithVShardMapping(mainReplicaSet string, vshards []uint64, mirrorReplicaSets ...string) ShardedOption

WithVShardMapping maps virtual shards to a main replica set and optional ordered write mirrors.

type SingletonOption

type SingletonOption func(*singletonConfig)

SingletonOption customizes a single-database topology.

func WithDatabaseName

func WithDatabaseName(name string) SingletonOption

WithDatabaseName identifies the database in telemetry. An empty name defaults to "default".

func WithReadReplicas

func WithReadReplicas(databases ...db.DBTX) SingletonOption

WithReadReplicas appends databases used for round-robin reads.

func WithWriteMirrors

func WithWriteMirrors(databases ...db.DBTX) SingletonOption

WithWriteMirrors appends databases that synchronously receive writes.

type Store

type Store interface {
	// Analyses returns the Analyses query group.
	Analyses() Analyses
	// QueryMessage returns the QueryMessage query group.
	QueryMessage() QueryMessage
	// Users returns the Users query group.
	Users() Users
}

Store is the topology-independent generated query API.

func NewStore

func NewStore(ctx context.Context, topology Topology, options ...StoreOption) (Store, error)

NewStore creates the generated query API from an opaque topology configuration.

type StoreOption

type StoreOption func(*storeOptions)

StoreOption customizes telemetry for a generated store.

func WithLogger

func WithLogger(logger *slog.Logger) StoreOption

WithLogger configures optional structured logging for routed queries. A nil logger disables logging.

func WithMeterProvider

func WithMeterProvider(provider metric.MeterProvider) StoreOption

WithMeterProvider configures the provider used for routed query metrics. A nil provider uses the global OpenTelemetry meter provider.

func WithTracerProvider

func WithTracerProvider(provider trace.TracerProvider) StoreOption

WithTracerProvider configures the provider used for routed query spans. A nil provider uses the global OpenTelemetry tracer provider.

type Topology

type Topology interface {
	// contains filtered or unexported methods
}

Topology is an opaque database topology for Store.

func Sharded

func Sharded[SK any](numVShards uint64, shardHasher pgmesh.ShardHasher[SK], resolver ShardResolver[SK], options ...ShardedOption) Topology

Sharded returns an opaque sharded topology.

func Singleton

func Singleton(primary db.DBTX, options ...SingletonOption) Topology

Singleton returns a topology with one primary database.

type UpdateUserNameParams

type UpdateUserNameParams = db.UpdateUserNameParams

UpdateUserNameParams re-exports UpdateUserNameParams from the sqlc package.

type User

type User = db.User

User re-exports User from the sqlc package.

type Users

type Users interface {
	UsersReader
	UsersWriter
}

Users exposes all queries in its generated store group.

type UsersReader

type UsersReader interface {
	// GetUser executes the generated GetUser query.
	GetUser(ctx context.Context, arg *GetUserParams, storeOptions ...QueryOption) (*User, error)
	// ListAllUsers executes the generated ListAllUsers query.
	ListAllUsers(ctx context.Context, storeOptions ...QueryOption) ([]*User, error)
}

UsersReader exposes read queries in the Users store group.

type UsersWriter

type UsersWriter interface {
	// CopyUsers executes the generated CopyUsers query.
	CopyUsers(ctx context.Context, arg []*CopyUsersParams, storeOptions ...QueryOption) (int64, error)
	// CreateUser executes the generated CreateUser query.
	CreateUser(ctx context.Context, arg *CreateUserParams, storeOptions ...QueryOption) (*User, error)
	// DeleteAllUsers executes the generated DeleteAllUsers query.
	DeleteAllUsers(ctx context.Context, storeOptions ...QueryOption) error
	// DeleteAllUsersByName executes the generated DeleteAllUsersByName query.
	DeleteAllUsersByName(ctx context.Context, name string, storeOptions ...QueryOption) (int64, error)
	// UpdateUserName executes the generated UpdateUserName query.
	UpdateUserName(ctx context.Context, arg *UpdateUserNameParams, storeOptions ...QueryOption) (*User, error)
}

UsersWriter exposes write queries in the Users store group.

Jump to

Keyboard shortcuts

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