mystmt

package
v0.0.0-...-3cb96c0 Latest Latest
Warning

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

Go to latest
Published: Jan 26, 2023 License: MIT Imports: 7 Imported by: 0

README

pgstmt

DSL SQL Builder

Experiment DO NOT use in production

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Default interface{} = defaultValue{}

Default use for insert default value

Functions

func Arg

func Arg(v interface{}) interface{}

Arg marks value as argument to replace with ? when build query

func NotArg

func NotArg(v interface{}) interface{}

NotArg marks value as non-argument

Types

type Cond

type Cond interface {
	Op(field, op string, value interface{})
	OpRaw(field, op string, rawValue interface{})
	Eq(field string, value interface{})
	EqRaw(field string, rawValue interface{})
	Ne(field string, value interface{})
	NeRaw(field string, rawValue interface{})
	Lt(field string, value interface{})
	LtRaw(field string, rawValue interface{})
	Le(field string, value interface{})
	LeRaw(field string, rawValue interface{})
	Gt(field string, value interface{})
	GtRaw(field string, rawValue interface{})
	Ge(field string, value interface{})
	GeRaw(field string, rawValue interface{})
	Like(field string, value interface{})
	LikeRaw(field string, rawValue interface{})
	In(field string, value ...interface{})
	InRaw(field string, value ...interface{})
	InSelect(field string, f func(b SelectStatement))
	NotIn(field string, value ...interface{})
	NotInRaw(field string, value ...interface{})
	IsNull(field string)
	IsNotNull(field string)
	Raw(sql string)
	And(f func(b Cond))
	Or(f func(b Cond))
	Mode() CondMode
}

Cond is the condition builder

type CondMode

type CondMode interface {
	And()
	Or()
}

type DeleteStatement

type DeleteStatement interface {
	From(table string)
	Where(f func(b Cond))
}

type Distinct

type Distinct interface {
	On(col ...string)
}

type InsertStatement

type InsertStatement interface {
	Into(table string)
	Columns(col ...string)
	OverridingSystemValue()
	OverridingUserValue()
	DefaultValues()
	Value(value ...interface{})
	Values(values ...interface{})
	Select(f func(b SelectStatement))
	OnDuplicateKey() OnDuplicateKey
}

InsertStatement is the insert statement builder

type Join

type Join interface {
	On(f func(b Cond))
	Using(col ...string)
}

type OnDuplicateKey

type OnDuplicateKey interface {
	Update(f func(b UpdateStatement))
}

type OrderBy

type OrderBy interface {
	Asc() OrderBy
	Desc() OrderBy
	NullsFirst() OrderBy
	NullsLast() OrderBy
}

type Result

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

func Delete

func Delete(f func(b DeleteStatement)) *Result

Delete builds delete statement

func Insert

func Insert(f func(b InsertStatement)) *Result

Insert builds insert statement

func Select

func Select(f func(b SelectStatement)) *Result

Select builds select statement

func Union

func Union(f func(b UnionStatement)) *Result

func Update

func Update(f func(b UpdateStatement)) *Result

Update builds update statement

func (*Result) Exec

func (r *Result) Exec(f func(string, ...interface{}) (sql.Result, error)) (sql.Result, error)

func (*Result) ExecContext

func (r *Result) ExecContext(ctx context.Context, f func(context.Context, string, ...interface{}) (sql.Result, error)) (sql.Result, error)

func (*Result) ExecWith

func (r *Result) ExecWith(ctx context.Context) (sql.Result, error)

func (*Result) IterWith

func (r *Result) IterWith(ctx context.Context, iter mysql.Iterator) error

func (*Result) Query

func (r *Result) Query(f func(string, ...interface{}) (*sql.Rows, error)) (*sql.Rows, error)

func (*Result) QueryContext

func (r *Result) QueryContext(ctx context.Context, f func(context.Context, string, ...interface{}) (*sql.Rows, error)) (*sql.Rows, error)

func (*Result) QueryRow

func (r *Result) QueryRow(f func(string, ...interface{}) *sql.Row) *sql.Row

func (*Result) QueryRowContext

func (r *Result) QueryRowContext(ctx context.Context, f func(context.Context, string, ...interface{}) *sql.Row) *sql.Row

func (*Result) QueryRowWith

func (r *Result) QueryRowWith(ctx context.Context) *sql.Row

func (*Result) QueryWith

func (r *Result) QueryWith(ctx context.Context) (*sql.Rows, error)

func (*Result) SQL

func (r *Result) SQL() (query string, args interface{})

type SelectStatement

type SelectStatement interface {
	Distinct() Distinct
	Columns(col ...interface{})
	ColumnSelect(f func(b SelectStatement), as string)
	From(table ...string)
	FromSelect(f func(b SelectStatement), as string)
	Join(table string) Join
	InnerJoin(table string) Join
	FullOuterJoin(table string) Join
	LeftJoin(table string) Join
	RightJoin(table string) Join
	JoinSelect(f func(b SelectStatement), as string) Join
	JoinUnion(f func(b UnionStatement), as string) Join
	InnerJoinSelect(f func(b SelectStatement), as string) Join
	InnerJoinUnion(f func(b UnionStatement), as string) Join
	FullOuterJoinSelect(f func(b SelectStatement), as string) Join
	LeftJoinSelect(f func(b SelectStatement), as string) Join
	LeftJoinUnion(f func(b UnionStatement), as string) Join
	RightJoinSelect(f func(b SelectStatement), as string) Join
	RightJoinUnion(f func(b UnionStatement), as string) Join
	JoinLateralSelect(f func(b SelectStatement), as string) Join
	InnerJoinLateralSelect(f func(b SelectStatement), as string) Join
	FullOuterJoinLateralSelect(f func(b SelectStatement), as string) Join
	LeftJoinLateralSelect(f func(b SelectStatement), as string) Join
	RightJoinLateralSelect(f func(b SelectStatement), as string) Join
	Where(f func(b Cond))
	GroupBy(col ...string)
	Having(f func(b Cond))
	OrderBy(col string) OrderBy
	Limit(n int64)
	Offset(n int64)
}

SelectStatement is the select statement builder

type Set

type Set interface {
	To(value ...interface{})
	ToRaw(rawValue ...interface{})
	Select(f func(b SelectStatement))
}

type UnionStatement

type UnionStatement interface {
	Select(f func(b SelectStatement))
	AllSelect(f func(b SelectStatement))
	DistinctSelect(f func(b SelectStatement))
	OrderBy(col string) OrderBy
	Limit(n int64)
}

type UpdateStatement

type UpdateStatement interface {
	Table(table string)
	Set(col ...string) Set
	From(table ...string)
	Join(table string) Join
	InnerJoin(table string) Join
	FullOuterJoin(table string) Join
	LeftJoin(table string) Join
	RightJoin(table string) Join
	Where(f func(b Cond))
	WhereCurrentOf(cursor string)
}

type Values

type Values interface {
	Value(value ...interface{})
	Values(values ...interface{})
}

Jump to

Keyboard shortcuts

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