exampledb

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 DBTX) pgmesh.Node[*ReadQueries, *StoreQueries]

NewStoreNode creates a pgmesh node backed by database.

Types

type Account

type Account struct {
	ID          int64
	TenantID    int64
	DisplayName string
}

type CopyAccountsParams

type CopyAccountsParams struct {
	ID          int64
	TenantID    int64
	DisplayName string
}

type DBTX

type DBTX interface {
	Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
	Query(context.Context, string, ...interface{}) (pgx.Rows, error)
	QueryRow(context.Context, string, ...interface{}) pgx.Row
	CopyFrom(ctx context.Context, tableName pgx.Identifier, columnNames []string, rowSrc pgx.CopyFromSource) (int64, error)
}

type GetAccountParams

type GetAccountParams struct {
	TenantID int64
	ID       int64
}

type Querier

type Querier interface {
	// kind: write
	CopyAccounts(ctx context.Context, arg []*CopyAccountsParams) (int64, error)
	// kind: read
	// shard: tenant(tenant_id)
	GetAccount(ctx context.Context, arg *GetAccountParams) (*Account, error)
	// kind: read
	ListAccounts(ctx context.Context) ([]*Account, error)
	// kind: write
	// shard: tenant(tenant_id)
	UpdateAccountName(ctx context.Context, arg *UpdateAccountNameParams) (*Account, error)
	// kind: write
	// shard: tenant(tenant_id)
	UpsertAccount(ctx context.Context, arg *UpsertAccountParams) (*Account, error)
}

type Queries

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

func New

func New(db DBTX) *Queries

func (*Queries) CopyAccounts

func (q *Queries) CopyAccounts(ctx context.Context, arg []*CopyAccountsParams) (int64, error)

kind: write

func (*Queries) GetAccount

func (q *Queries) GetAccount(ctx context.Context, arg *GetAccountParams) (*Account, error)

kind: read shard: tenant(tenant_id)

func (*Queries) ListAccounts

func (q *Queries) ListAccounts(ctx context.Context) ([]*Account, error)

kind: read

func (*Queries) UpdateAccountName

func (q *Queries) UpdateAccountName(ctx context.Context, arg *UpdateAccountNameParams) (*Account, error)

kind: write shard: tenant(tenant_id)

func (*Queries) UpsertAccount

func (q *Queries) UpsertAccount(ctx context.Context, arg *UpsertAccountParams) (*Account, error)

kind: write shard: tenant(tenant_id)

func (*Queries) WithTx

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

type ReadQuerier

type ReadQuerier interface {
	// GetAccount executes the generated GetAccount query.
	GetAccount(ctx context.Context, arg *GetAccountParams) (*Account, error)
	// ListAccounts executes the generated ListAccounts query.
	ListAccounts(ctx context.Context) ([]*Account, 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 DBTX) *ReadQueries

NewReadQueries creates a read-only query wrapper.

func (*ReadQueries) GetAccount

func (q *ReadQueries) GetAccount(ctx context.Context, arg *GetAccountParams) (*Account, error)

GetAccount executes the generated GetAccount query.

func (*ReadQueries) ListAccounts

func (q *ReadQueries) ListAccounts(ctx context.Context) ([]*Account, error)

ListAccounts executes the generated ListAccounts 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]) GetAccount

func (q *ShardedQueries[SK]) GetAccount(ctx context.Context, arg *GetAccountParams, routeOptions ...RouteOption) (*Account, error)

GetAccount executes the generated query on its resolved shard.

func (*ShardedQueries[SK]) UpdateAccountName

func (q *ShardedQueries[SK]) UpdateAccountName(ctx context.Context, arg *UpdateAccountNameParams, routeOptions ...RouteOption) (*Account, error)

UpdateAccountName executes the generated query on its resolved shard.

func (*ShardedQueries[SK]) UpsertAccount

func (q *ShardedQueries[SK]) UpsertAccount(ctx context.Context, arg *UpsertAccountParams, routeOptions ...RouteOption) (*Account, error)

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

type UpdateAccountNameParams struct {
	TenantID    int64
	ID          int64
	DisplayName string
}

type UpsertAccountParams

type UpsertAccountParams struct {
	ID          int64
	TenantID    int64
	DisplayName string
}

type WriteQuerier

type WriteQuerier interface {
	// CopyAccounts executes the generated CopyAccounts query.
	CopyAccounts(ctx context.Context, arg []*CopyAccountsParams) (int64, error)
	// UpdateAccountName executes the generated UpdateAccountName query.
	UpdateAccountName(ctx context.Context, arg *UpdateAccountNameParams) (*Account, error)
	// UpsertAccount executes the generated UpsertAccount query.
	UpsertAccount(ctx context.Context, arg *UpsertAccountParams) (*Account, 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 DBTX) *WriteQueries

NewWriteQueries creates a primary-capable query wrapper.

func (*WriteQueries) CopyAccounts

func (q *WriteQueries) CopyAccounts(ctx context.Context, arg []*CopyAccountsParams) (int64, error)

CopyAccounts executes the generated CopyAccounts query.

func (*WriteQueries) UpdateAccountName

func (q *WriteQueries) UpdateAccountName(ctx context.Context, arg *UpdateAccountNameParams) (*Account, error)

UpdateAccountName executes the generated UpdateAccountName query.

func (*WriteQueries) UpsertAccount

func (q *WriteQueries) UpsertAccount(ctx context.Context, arg *UpsertAccountParams) (*Account, error)

UpsertAccount executes the generated UpsertAccount 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