Documentation
¶
Index ¶
- type Analyses
- type AnalysesReader
- type AnalysesWriter
- type Analysis
- type AnalysisState
- type CopyUsersParams
- type CopyUsersT
- type CreateUserParams
- type CreateUserT
- type GetAnalysisParams
- type GetAnalysisT
- type GetTenantUserAnalysisParams
- type GetTenantUserAnalysisRow
- type GetTenantUserAnalysisT
- type GetUserParams
- type GetUserT
- type ListP2PMessageIDsByChatParams
- type ListP2PMessageIDsByChatT
- type ListP2PMessagesByChatParams
- type ListP2PMessagesByChatT
- type ListUsersByIDsT
- type Message
- type MessageKey
- type NullAnalysisState
- type QueryMessage
- type QueryMessageReader
- type QueryMessageWriter
- type QueryOption
- type ShardResolver
- type ShardedOption
- type SingletonOption
- type Store
- type StoreOption
- func WithAnalysesFactory(createAnalyses func(Analyses) Analyses) StoreOption
- func WithCopyUsersBatching(config pgmesh.CopyBatchConfig) StoreOption
- func WithLogger(logger *slog.Logger) StoreOption
- func WithMeterProvider(provider metric.MeterProvider) StoreOption
- func WithQueryMessageFactory(createQueryMessage func(QueryMessage) QueryMessage) StoreOption
- func WithTracerProvider(provider trace.TracerProvider) StoreOption
- func WithUsersFactory(createUsers func(Users) Users) StoreOption
- type TenantKey
- type Topology
- type UpdateUserNameParams
- type UpdateUserNameT
- type User
- type Users
- type UsersReader
- type UsersWriter
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 *GetAnalysisT, storeOptions ...QueryOption) (*Analysis, error)
// GetTenantUserAnalysis executes the generated GetTenantUserAnalysis query.
GetTenantUserAnalysis(ctx context.Context, arg *GetTenantUserAnalysisT, 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 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 CopyUsersT ¶
CopyUsersT combines SQL and routing parameters for CopyUsers.
type CreateUserParams ¶
type CreateUserParams = db.CreateUserParams
CreateUserParams re-exports CreateUserParams from the sqlc package.
type CreateUserT ¶
CreateUserT combines SQL and routing parameters for CreateUser.
type GetAnalysisParams ¶
type GetAnalysisParams = db.GetAnalysisParams
GetAnalysisParams re-exports GetAnalysisParams from the sqlc package.
type GetAnalysisT ¶
GetAnalysisT combines SQL and routing parameters for GetAnalysis.
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 GetTenantUserAnalysisT ¶
GetTenantUserAnalysisT combines SQL and routing 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 ListP2PMessageIDsByChatT ¶
type ListP2PMessageIDsByChatT struct {
MessageKey
Limit int32
PeerID int64
CreatedSince pgtype.Timestamptz
LastID interface{}
}
ListP2PMessageIDsByChatT combines SQL and routing parameters for ListP2PMessageIDsByChat.
type ListP2PMessagesByChatParams ¶
type ListP2PMessagesByChatParams = db.ListP2PMessagesByChatParams
ListP2PMessagesByChatParams re-exports ListP2PMessagesByChatParams from the sqlc package.
type ListP2PMessagesByChatT ¶
type ListP2PMessagesByChatT struct {
MessageKey
Limit int32
PeerID int64
CreatedSince pgtype.Timestamptz
LastID interface{}
}
ListP2PMessagesByChatT combines SQL and routing parameters for ListP2PMessagesByChat.
type ListUsersByIDsT ¶
ListUsersByIDsT combines SQL and routing parameters for ListUsersByIDs.
type MessageKey ¶
MessageKey is the shared shard key for the "messageKey" route.
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 *ListP2PMessageIDsByChatT, storeOptions ...QueryOption) ([]interface{}, error)
// ListP2PMessagesByChat executes the generated ListP2PMessagesByChat query.
ListP2PMessagesByChat(ctx context.Context, arg *ListP2PMessagesByChatT, 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(key MessageKey) SK // TenantKey resolves the "tenantKey" shard route. TenantKey(key TenantKey) SK }
ShardResolver resolves generated query parameters to shard keys.
type ShardedOption ¶
type ShardedOption func(*shardedOptions)
ShardedOption customizes a sharded topology.
func WithReplicaSet ¶
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.
type StoreOption ¶
type StoreOption func(*storeOptions)
StoreOption customizes a generated store.
func WithAnalysesFactory ¶
func WithAnalysesFactory(createAnalyses func(Analyses) Analyses) StoreOption
WithAnalysesFactory configures an optional wrapper for the Analyses query group. A nil factory leaves the generated query group unwrapped.
func WithCopyUsersBatching ¶
func WithCopyUsersBatching(config pgmesh.CopyBatchConfig) StoreOption
WithCopyUsersBatching enables asynchronous micro-batching for CopyUsers.
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 WithQueryMessageFactory ¶
func WithQueryMessageFactory(createQueryMessage func(QueryMessage) QueryMessage) StoreOption
WithQueryMessageFactory configures an optional wrapper for the QueryMessage query group. A nil factory leaves the generated query group unwrapped.
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.
func WithUsersFactory ¶
func WithUsersFactory(createUsers func(Users) Users) StoreOption
WithUsersFactory configures an optional wrapper for the Users query group. A nil factory leaves the generated query group unwrapped.
type TenantKey ¶
type TenantKey struct {
TenantID int64
}
TenantKey is the shared shard key for the "tenantKey" route.
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.
type UpdateUserNameParams ¶
type UpdateUserNameParams = db.UpdateUserNameParams
UpdateUserNameParams re-exports UpdateUserNameParams from the sqlc package.
type UpdateUserNameT ¶
UpdateUserNameT combines SQL and routing parameters for UpdateUserName.
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 *GetUserT, storeOptions ...QueryOption) (*User, error)
// ListAllUsers executes the generated ListAllUsers query.
ListAllUsers(ctx context.Context, storeOptions ...QueryOption) ([]*User, error)
// ListUsersByIDs executes the generated ListUsersByIDs query.
ListUsersByIDs(ctx context.Context, arg []*ListUsersByIDsT, 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 []*CopyUsersT, storeOptions ...QueryOption) (int64, error)
// CopyUsersAsync accepts rows for asynchronous COPY.
CopyUsersAsync(ctx context.Context, arg []*CopyUsersT) *pgmesh.Future[int64]
// FlushCopyUsers drains asynchronous submissions accepted before its barrier.
FlushCopyUsers(ctx context.Context) error
// CreateUser executes the generated CreateUser query.
CreateUser(ctx context.Context, arg *CreateUserT, 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 *UpdateUserNameT, storeOptions ...QueryOption) (*User, error)
}
UsersWriter exposes write queries in the Users store group.