expr

package
v0.29.0 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2024 License: MIT Imports: 6 Imported by: 12

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Arg added in v0.3.1

func Arg(vals ...any) bob.Expression

func ArgGroup added in v0.15.0

func ArgGroup(vals ...any) bob.Expression

Like Arg, but wraps in parentheses

func Cast added in v0.28.0

func Cast(e bob.Expression, typname string) bob.Expression

func Not

func Not[T bob.Expression, B builder[T]](exp bob.Expression) T

prefix the expression with a NOT

func OP

func OP(operator string, left, right any) bob.Expression

Generic operator between a left and right val

func Quote added in v0.2.0

func Quote(aa ...string) bob.Expression

func RawQuery

func RawQuery(d bob.Dialect, q string, args ...any) bob.BaseQuery[Clause]

func X

func X[T bob.Expression, B builder[T]](exp bob.Expression, others ...bob.Expression) T

Build an expression

Types

type Builder

type Builder[T bob.Expression, B builder[T]] struct{}

To be embedded in query mods T is the chain type, this allows dialects to have custom chain methods F is function type, so that the dialect can change where it accepted. E.g. it can be modified to work as a mod B has a New() method that is used to create a new instance of T

func (Builder[T, B]) And

func (e Builder[T, B]) And(args ...bob.Expression) T

And

func (Builder[T, B]) Arg

func (e Builder[T, B]) Arg(vals ...any) T

Comma separated list of arguments

func (Builder[T, B]) ArgGroup added in v0.15.0

func (e Builder[T, B]) ArgGroup(vals ...any) T

Comma separated list of arguments surrounded by parentheses

func (Builder[T, B]) Cast added in v0.28.0

func (e Builder[T, B]) Cast(exp bob.Expression, typname string) T

quoted and joined... something like "users"."id"

func (Builder[T, B]) Group

func (e Builder[T, B]) Group(exps ...bob.Expression) T

Add parentheses around an expressions and separate them by commas

func (Builder[T, B]) Not

func (e Builder[T, B]) Not(exp bob.Expression) T

prefix the expression with a NOT

func (Builder[T, B]) Or

func (e Builder[T, B]) Or(args ...bob.Expression) T

Or

func (Builder[T, B]) Placeholder

func (e Builder[T, B]) Placeholder(n uint) T

func (Builder[T, B]) Quote

func (e Builder[T, B]) Quote(aa ...string) T

quoted and joined... something like "users"."id"

func (Builder[T, B]) Raw

func (e Builder[T, B]) Raw(query string, args ...any) T

func (Builder[T, B]) S

func (e Builder[T, B]) S(s string) T

single quoted raw string

type CaseChain added in v0.29.0

type CaseChain[T bob.Expression, B builder[T]] func() caseExpr

func NewCase added in v0.29.0

func NewCase[T bob.Expression, B builder[T]]() CaseChain[T, B]

func (CaseChain[T, B]) Else added in v0.29.0

func (cc CaseChain[T, B]) Else(then bob.Expression) T

func (CaseChain[T, B]) End added in v0.29.0

func (cc CaseChain[T, B]) End() T

func (CaseChain[T, B]) When added in v0.29.0

func (cc CaseChain[T, B]) When(condition, then bob.Expression) CaseChain[T, B]

func (CaseChain[T, B]) WriteSQL added in v0.29.0

func (cc CaseChain[T, B]) WriteSQL(ctx context.Context, w io.Writer, d bob.Dialect, start int) ([]any, error)

type Chain

type Chain[T bob.Expression, B builder[T]] struct {
	Base bob.Expression
}

func (Chain[T, B]) And

func (x Chain[T, B]) And(targets ...bob.Expression) T

AND

func (Chain[T, B]) As

func (x Chain[T, B]) As(alias string) bob.Expression

As does not return a new chain. Should be used at the end of an expression useful for columns

func (Chain[T, B]) Between

func (x Chain[T, B]) Between(a, b bob.Expression) T

BETWEEN a AND b

func (Chain[T, B]) Concat

func (x Chain[T, B]) Concat(targets ...bob.Expression) T

Concatenate: ||

func (Chain[T, B]) EQ

func (x Chain[T, B]) EQ(target bob.Expression) T

Equal

func (Chain[T, B]) GT

func (x Chain[T, B]) GT(target bob.Expression) T

Greater than

func (Chain[T, B]) GTE

func (x Chain[T, B]) GTE(target bob.Expression) T

Greater than or equal to

func (Chain[T, B]) In

func (x Chain[T, B]) In(vals ...bob.Expression) T

IN

func (Chain[T, B]) IsDistinctFrom added in v0.2.0

func (x Chain[T, B]) IsDistinctFrom(exp bob.Expression) T

IS DISTINCT FROM

func (Chain[T, B]) IsNotDistinctFrom added in v0.2.0

func (x Chain[T, B]) IsNotDistinctFrom(exp bob.Expression) T

IS NOT DISTINCT FROM

func (Chain[T, B]) IsNotNull

func (x Chain[T, B]) IsNotNull() T

IS NOT NUll

func (Chain[T, B]) IsNull

func (x Chain[T, B]) IsNull() T

IS NUll

func (Chain[T, B]) LT

func (x Chain[T, B]) LT(target bob.Expression) T

Less than

func (Chain[T, B]) LTE

func (x Chain[T, B]) LTE(target bob.Expression) T

Less than or equal to

func (Chain[T, B]) Like added in v0.19.0

func (x Chain[T, B]) Like(target bob.Expression) T

Like operator

func (Chain[T, B]) Minus

func (x Chain[T, B]) Minus(target bob.Expression) T

Subtract

func (Chain[T, B]) NE

func (x Chain[T, B]) NE(target bob.Expression) T

Not Equal

func (Chain[T, B]) NotBetween

func (x Chain[T, B]) NotBetween(a, b bob.Expression) T

NOT BETWEEN a AND b

func (Chain[T, B]) NotIn

func (x Chain[T, B]) NotIn(vals ...bob.Expression) T

NOT IN

func (Chain[T, B]) OP added in v0.23.0

func (x Chain[T, B]) OP(op string, target bob.Expression) T

Generic Operator

func (Chain[T, B]) Or

func (x Chain[T, B]) Or(targets ...bob.Expression) T

OR

func (Chain[T, B]) WriteSQL

func (x Chain[T, B]) WriteSQL(ctx context.Context, w io.Writer, d bob.Dialect, start int) ([]any, error)

WriteSQL satisfies the bob.Expression interface

type Clause added in v0.18.0

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

A Raw Clause with arguments

func (Clause) WriteSQL added in v0.18.0

func (r Clause) WriteSQL(ctx context.Context, w io.Writer, d bob.Dialect, start int) ([]any, error)

type Join

type Join struct {
	Exprs []bob.Expression
	Sep   string
}

If no separator, a space is used

func (Join) WriteSQL

func (s Join) WriteSQL(ctx context.Context, w io.Writer, d bob.Dialect, start int) ([]any, error)

type Raw

type Raw []byte

func (Raw) WriteSQL

func (r Raw) WriteSQL(ctx context.Context, w io.Writer, d bob.Dialect, start int) ([]any, error)

Jump to

Keyboard shortcuts

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