dbwasm

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 31, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterTypes

func RegisterTypes(ctx context.Context, conn *pgx.Conn) error

RegisterTypes registers the database's hstore, enum, composite, and custom range types (and their array types) on a connection so those columns/params scan and encode into their Go types. Wire it into pgxpool.Config.AfterConnect (it runs per connection).

The LoadType order is dependency-safe: each enum/composite/range is registered before its array type, a composite after every composite it has a field of (topological order), and custom ranges last (their subtypes are already registered) — pgx's Conn.LoadType resolves a derived type only once its element/field/subtype types are registered. hstore is registered separately (LoadType cannot load a non-array base type).

Types

type AppAddress

type AppAddress struct {
	Street string
	City   string
	Zip    string
}

func (AppAddress) Index

func (a AppAddress) Index(i int) any

func (AppAddress) IsNull

func (a AppAddress) IsNull() bool

func (*AppAddress) ScanIndex

func (a *AppAddress) ScanIndex(i int) any

func (*AppAddress) ScanNull

func (a *AppAddress) ScanNull() error

type AppKitchenSink

type AppKitchenSink struct {
	CInt2          *int16
	CInt4          *int32
	CInt8          *int64
	CSerial        *int32
	CNumeric       *string
	CFloat4        *float32
	CFloat8        *float64
	CBool          *bool
	CText          *string
	CVarchar       *string
	CChar          *string
	CUUID          *uuid.UUID
	CBytea         []byte
	CJsonb         map[string]any
	CJSON          json.RawMessage
	CInet          *string
	CDate          *time.Time
	CTime          *time.Time
	CTimestamp     *time.Time
	CTimestamptz   *time.Time
	CInterval      pgtype.Interval
	CPoint         pgtype.Point
	CTags          pgtype.Hstore
	CLtree         *string
	CIntArray      []int32
	CTextArray     []string
	CStatus        *AppUserStatus
	CAddress       *AppAddress
	CEmail         *string
	CInt4range     pgtype.Range[pgtype.Int4]
	CNummultirange pgtype.Multirange[pgtype.Range[pgtype.Numeric]]
	CGenerated     *int32
	CIdentity      int32
}

type AppOrders

type AppOrders struct {
	ID       int64
	UserID   int64
	Total    string
	PlacedAt time.Time
}

type AppPerson

type AppPerson struct {
	Name   string
	Home   AppAddress
	Status AppUserStatus
}

func (AppPerson) Index

func (a AppPerson) Index(i int) any

func (AppPerson) IsNull

func (a AppPerson) IsNull() bool

func (*AppPerson) ScanIndex

func (a *AppPerson) ScanIndex(i int) any

func (*AppPerson) ScanNull

func (a *AppPerson) ScanNull() error

type AppProfiles

type AppProfiles struct {
	UserID        int64
	Bio           *string
	Address       *AppAddress
	PrevAddresses []AppAddress
	StatusHistory []AppUserStatus
	Owner         AppPerson
	ActiveDuring  pgtype.Range[pgtype.Timestamptz]
	ValidWindow   pgtype.Range[pgtype.Timestamptz]
	Windows       pgtype.Multirange[pgtype.Range[pgtype.Timestamptz]]
}

type AppRoles

type AppRoles struct {
	ID   int64
	Name string
}

type AppUserRoles

type AppUserRoles struct {
	UserID int64
	RoleID int64
}

type AppUserStatus

type AppUserStatus string
const (
	AppUserStatusActive   AppUserStatus = "active"
	AppUserStatusInactive AppUserStatus = "inactive"
	AppUserStatusBanned   AppUserStatus = "banned"
)

type AppUsers

type AppUsers struct {
	ID        int64
	Email     string
	Status    AppUserStatus
	ManagerID *int64
	CreatedAt time.Time
}

type AuditLog

type AuditLog struct {
	ID        int64
	TableName string
	ChangedAt time.Time
}

type BulkCreateRolesParams

type BulkCreateRolesParams struct {
	Name string
}

type BulkTouchUsersBatchResults

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

func (*BulkTouchUsersBatchResults) Close

func (b *BulkTouchUsersBatchResults) Close() error

func (*BulkTouchUsersBatchResults) Exec

func (b *BulkTouchUsersBatchResults) Exec(f func(int, error))

type BulkTouchUsersParams

type BulkTouchUsersParams struct {
	Status AppUserStatus
	ID     int64
}

type CreateOrderParams

type CreateOrderParams struct {
	UserID int64
	Total  string
}

type CreateOrderRow

type CreateOrderRow struct {
	ID       int64
	PlacedAt time.Time
}

type DBTX

type DBTX interface {
	Exec(ctx context.Context, sql string, args ...any) (pgconn.CommandTag, error)
	Query(ctx context.Context, sql string, args ...any) (pgx.Rows, error)
	QueryRow(ctx context.Context, sql string, args ...any) pgx.Row
	CopyFrom(ctx context.Context, tableName pgx.Identifier, columnNames []string, rowSrc pgx.CopyFromSource) (int64, error)
	SendBatch(ctx context.Context, b *pgx.Batch) pgx.BatchResults
}

type GetActiveDuringRow

type GetActiveDuringRow struct {
	ActiveDuring pgtype.Range[pgtype.Timestamptz]
}

type GetOwnerRow

type GetOwnerRow struct {
	Owner AppPerson
}

type GetPrevAddressesRow

type GetPrevAddressesRow struct {
	PrevAddresses []AppAddress
}

type GetProfileRow

type GetProfileRow struct {
	UserID  int64
	Bio     *string
	Address *AppAddress
}

type GetStatusHistoryRow

type GetStatusHistoryRow struct {
	StatusHistory []AppUserStatus
}

type GetUserRow

type GetUserRow struct {
	ID     int64
	Email  string
	Status AppUserStatus
}

type GetValidWindowRow

type GetValidWindowRow struct {
	ValidWindow pgtype.Range[pgtype.Timestamptz]
}

type GetWindowsRow

type GetWindowsRow struct {
	Windows pgtype.Multirange[pgtype.Range[pgtype.Timestamptz]]
}

type ListActiveUsersRow

type ListActiveUsersRow struct {
	ID    int64
	Email string
}

type ListUserOrdersRow

type ListUserOrdersRow struct {
	ID       int64
	Total    string
	PlacedAt time.Time
}

type OrderDir

type OrderDir string
const (
	OrderAsc  OrderDir = "ASC"
	OrderDesc OrderDir = "DESC"
)

type Queries

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

func New

func New(db DBTX) *Queries

func (*Queries) BulkCreateRoles

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

func (*Queries) BulkTouchUsers

func (*Queries) CreateOrder

func (q *Queries) CreateOrder(ctx context.Context, arg CreateOrderParams) (CreateOrderRow, error)

func (*Queries) DeleteUser

func (q *Queries) DeleteUser(ctx context.Context, id int64) error

func (*Queries) GetActiveDuring

func (q *Queries) GetActiveDuring(ctx context.Context, userID int64) (GetActiveDuringRow, error)

func (*Queries) GetOwner

func (q *Queries) GetOwner(ctx context.Context, userID int64) (GetOwnerRow, error)

func (*Queries) GetPrevAddresses

func (q *Queries) GetPrevAddresses(ctx context.Context, userID int64) (GetPrevAddressesRow, error)

func (*Queries) GetProfile

func (q *Queries) GetProfile(ctx context.Context, userID int64) (GetProfileRow, error)

func (*Queries) GetStatusHistory

func (q *Queries) GetStatusHistory(ctx context.Context, userID int64) (GetStatusHistoryRow, error)

func (*Queries) GetUser

func (q *Queries) GetUser(ctx context.Context, id int64) (GetUserRow, error)

func (*Queries) GetValidWindow

func (q *Queries) GetValidWindow(ctx context.Context, userID int64) (GetValidWindowRow, error)

func (*Queries) GetWindows

func (q *Queries) GetWindows(ctx context.Context, userID int64) (GetWindowsRow, error)

func (*Queries) ListActiveUsers

func (q *Queries) ListActiveUsers(ctx context.Context) ([]ListActiveUsersRow, error)

func (*Queries) ListUserOrders

func (q *Queries) ListUserOrders(ctx context.Context, id int64) ([]ListUserOrdersRow, error)

func (*Queries) SearchUsers

func (q *Queries) SearchUsers(ctx context.Context, arg SearchUsersParams) ([]SearchUsersRow, error)

func (*Queries) SetAddress

func (q *Queries) SetAddress(ctx context.Context, arg SetAddressParams) error

func (*Queries) SetUserStatus

func (q *Queries) SetUserStatus(ctx context.Context, arg SetUserStatusParams) (int64, error)

func (*Queries) WithTx

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

type SearchUsersOrderBy

type SearchUsersOrderBy string
const (
	SearchUsersOrderByCreatedAt SearchUsersOrderBy = "created_at"
	SearchUsersOrderByEmail     SearchUsersOrderBy = "email"
)

type SearchUsersParams

type SearchUsersParams struct {
	Email    *string
	Ids      []int64
	OrderBy  SearchUsersOrderBy
	OrderDir OrderDir
}

type SearchUsersRow

type SearchUsersRow struct {
	ID     int64
	Email  string
	Status AppUserStatus
}

type SetAddressParams

type SetAddressParams struct {
	Address AppAddress
	UserID  int64
}

type SetUserStatusParams

type SetUserStatusParams struct {
	ID     int64
	Status AppUserStatus
}

Jump to

Keyboard shortcuts

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