core

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Ignore conflict = iota
	Replace
	Abort
	Fail
	Rollback
)
View Source
const (
	Asc direction = iota
	Desc
)

Variables

This section is empty.

Functions

func FormatValue

func FormatValue(v any) string

func ValidateColumn

func ValidateColumn(name string) error

Types

type Builder

type Builder struct {
	DB           *sql.DB
	TableName    *string
	SelectList   []string
	UpdateList   []string
	WhereList    []Where
	WhereArgs    []any
	JoinList     []Join
	ConflictMode *conflict
	OrderByList  []string
	GroupByList  []string
	HavingList   []Where
	HavingArgs   []any
	WithLimit    *int
	WithOffset   *int
	WithTotal    bool
	WithContext  context.Context
	WithBind     any
	Error        []error
}

* Builder is NOT safe for concurrent use by multiple goroutines

func NewBuilder

func NewBuilder(db *sql.DB) *Builder

func (*Builder) Bind added in v1.1.0

func (b *Builder) Bind(target any) *Builder

func (*Builder) Conflict

func (b *Builder) Conflict(conflict conflict) *Builder

func (*Builder) Context

func (b *Builder) Context(ctx context.Context) *Builder

func (*Builder) Count

func (b *Builder) Count() (int64, error)

func (*Builder) Create

func (b *Builder) Create(columns ...Column) error

func (*Builder) Decrease

func (b *Builder) Decrease(column string, num ...int) *Builder

func (*Builder) Delete

func (b *Builder) Delete(force ...bool) (int64, error)

func (*Builder) ExecAutoAsignContext

func (b *Builder) ExecAutoAsignContext(query string, args ...any) (sql.Result, error)

func (*Builder) First

func (b *Builder) First() (*sql.Row, error)

func (*Builder) Get

func (b *Builder) Get() (*sql.Rows, error)

func (*Builder) GroupBy

func (b *Builder) GroupBy(columns ...string) *Builder

func (*Builder) Having

func (b *Builder) Having(condition string, args ...any) *Builder

func (*Builder) HavingBetween

func (b *Builder) HavingBetween(column string, start, end any) *Builder

func (*Builder) HavingEq

func (b *Builder) HavingEq(column string, value any) *Builder

func (*Builder) HavingGe

func (b *Builder) HavingGe(column string, value any) *Builder

func (*Builder) HavingGt

func (b *Builder) HavingGt(column string, value any) *Builder

func (*Builder) HavingIn

func (b *Builder) HavingIn(column string, values []any) *Builder

func (*Builder) HavingLe

func (b *Builder) HavingLe(column string, value any) *Builder

func (*Builder) HavingLt

func (b *Builder) HavingLt(column string, value any) *Builder

func (*Builder) HavingNotEq

func (b *Builder) HavingNotEq(column string, value any) *Builder

func (*Builder) HavingNotIn

func (b *Builder) HavingNotIn(column string, values []any) *Builder

func (*Builder) HavingNotNull

func (b *Builder) HavingNotNull(column string) *Builder

func (*Builder) HavingNull

func (b *Builder) HavingNull(column string) *Builder

func (*Builder) Increase

func (b *Builder) Increase(column string, num ...int) *Builder

func (*Builder) Insert

func (b *Builder) Insert(data ...map[string]any) (int64, error)

func (*Builder) InsertBatch

func (b *Builder) InsertBatch(data []map[string]any) (int64, error)

func (*Builder) Join

func (b *Builder) Join(table, on string) *Builder

func (*Builder) Last added in v1.1.0

func (b *Builder) Last() (*sql.Row, error)

func (*Builder) LeftJoin

func (b *Builder) LeftJoin(table, on string) *Builder

func (*Builder) Limit

func (b *Builder) Limit(num ...int) *Builder

func (*Builder) Offset

func (b *Builder) Offset(num int) *Builder

func (*Builder) OrHaving

func (b *Builder) OrHaving(condition string, args ...any) *Builder

func (*Builder) OrHavingBetween

func (b *Builder) OrHavingBetween(column string, start, end any) *Builder

func (*Builder) OrHavingEq

func (b *Builder) OrHavingEq(column string, value any) *Builder

func (*Builder) OrHavingGe

func (b *Builder) OrHavingGe(column string, value any) *Builder

func (*Builder) OrHavingGt

func (b *Builder) OrHavingGt(column string, value any) *Builder

func (*Builder) OrHavingIn

func (b *Builder) OrHavingIn(column string, values []any) *Builder

func (*Builder) OrHavingLe

func (b *Builder) OrHavingLe(column string, value any) *Builder

func (*Builder) OrHavingLt

func (b *Builder) OrHavingLt(column string, value any) *Builder

func (*Builder) OrHavingNotEq

func (b *Builder) OrHavingNotEq(column string, value any) *Builder

func (*Builder) OrHavingNotIn

func (b *Builder) OrHavingNotIn(column string, values []any) *Builder

func (*Builder) OrHavingNotNull

func (b *Builder) OrHavingNotNull(column string) *Builder

func (*Builder) OrHavingNull

func (b *Builder) OrHavingNull(column string) *Builder

func (*Builder) OrWhere

func (b *Builder) OrWhere(condition string, args ...any) *Builder

func (*Builder) OrWhereBetween

func (b *Builder) OrWhereBetween(column string, start, end any) *Builder

func (*Builder) OrWhereEq

func (b *Builder) OrWhereEq(column string, value any) *Builder

func (*Builder) OrWhereGe

func (b *Builder) OrWhereGe(column string, value any) *Builder

func (*Builder) OrWhereGt

func (b *Builder) OrWhereGt(column string, value any) *Builder

func (*Builder) OrWhereIn

func (b *Builder) OrWhereIn(column string, values []any) *Builder

func (*Builder) OrWhereLe

func (b *Builder) OrWhereLe(column string, value any) *Builder

func (*Builder) OrWhereLt

func (b *Builder) OrWhereLt(column string, value any) *Builder

func (*Builder) OrWhereNotEq

func (b *Builder) OrWhereNotEq(column string, value any) *Builder

func (*Builder) OrWhereNotIn

func (b *Builder) OrWhereNotIn(column string, values []any) *Builder

func (*Builder) OrWhereNotNull

func (b *Builder) OrWhereNotNull(column string) *Builder

func (*Builder) OrWhereNull

func (b *Builder) OrWhereNull(column string) *Builder

func (*Builder) OrderBy

func (b *Builder) OrderBy(column string, direction ...direction) *Builder

func (*Builder) Raw

func (b *Builder) Raw() *sql.DB

func (*Builder) Select

func (b *Builder) Select(columns ...string) *Builder

func (*Builder) Table

func (b *Builder) Table(name string) *Builder

func (*Builder) Toggle

func (b *Builder) Toggle(column string) *Builder

func (*Builder) Total

func (b *Builder) Total() *Builder

func (*Builder) Update

func (b *Builder) Update(data ...map[string]any) (int64, error)

func (*Builder) Where

func (b *Builder) Where(condition string, args ...any) *Builder

func (*Builder) WhereBetween

func (b *Builder) WhereBetween(column string, start, end any) *Builder

func (*Builder) WhereEq

func (b *Builder) WhereEq(column string, value any) *Builder

func (*Builder) WhereGe

func (b *Builder) WhereGe(column string, value any) *Builder

func (*Builder) WhereGt

func (b *Builder) WhereGt(column string, value any) *Builder

func (*Builder) WhereIn

func (b *Builder) WhereIn(column string, values []any) *Builder

func (*Builder) WhereLe

func (b *Builder) WhereLe(column string, value any) *Builder

func (*Builder) WhereLt

func (b *Builder) WhereLt(column string, value any) *Builder

func (*Builder) WhereNotEq

func (b *Builder) WhereNotEq(column string, value any) *Builder

func (*Builder) WhereNotIn

func (b *Builder) WhereNotIn(column string, values []any) *Builder

func (*Builder) WhereNotNull

func (b *Builder) WhereNotNull(column string) *Builder

func (*Builder) WhereNull

func (b *Builder) WhereNull(column string) *Builder

type Column

type Column struct {
	Name         string
	Type         string
	IsPrimary    bool
	IsNullable   bool
	AutoIncrease bool
	IsUnique     bool
	Default      any
	ForeignKey   *Foreign
}

type Config

type Config struct {
	Path         string `json:"path"`
	Lifetime     int    `json:"lifetime,omitempty"`
	MaxOpenConns int    `json:"max_read_conns,omitempty"`
	MaxIdleConns int    `json:"max_idle_conns,omitempty"`
}

type Connector

type Connector struct {
	Read  *Builder
	Write *Builder
}

func (*Connector) Close

func (d *Connector) Close()

func (*Connector) Exec

func (d *Connector) Exec(key, query string, args ...any) (sql.Result, error)

func (*Connector) ExecContext

func (d *Connector) ExecContext(ctx context.Context, key, query string, args ...any) (sql.Result, error)

func (*Connector) Query

func (d *Connector) Query(key, query string, args ...any) (*sql.Rows, error)

func (*Connector) QueryContext

func (d *Connector) QueryContext(ctx context.Context, key, query string, args ...any) (*sql.Rows, error)

type Foreign

type Foreign struct {
	Table  string
	Column string
}

type Join

type Join struct {
	Mode  string
	Table string
	On    string
}

type Union

type Union struct {
	Builder *Builder
	All     bool
}

type Where

type Where struct {
	Condition string
	Operator  string
}

Jump to

Keyboard shortcuts

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