function

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2023 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// NumBytes counts the number of bytes in a string or binary content.
	NumBytes = CountType(false)
	// NumChars counts the number of characters in a string or binary content.
	NumChars = CountType(true)
)

Variables

View Source
var Defaults = []sql.Function{
	sql.Function1{
		Name: "count",
		Fn:   func(e sql.Expression) sql.Expression { return aggregation.NewCount(e) },
	},
	sql.Function1{
		Name: "min",
		Fn:   func(e sql.Expression) sql.Expression { return aggregation.NewMin(e) },
	},
	sql.Function1{
		Name: "max",
		Fn:   func(e sql.Expression) sql.Expression { return aggregation.NewMax(e) },
	},
	sql.Function1{
		Name: "avg",
		Fn:   func(e sql.Expression) sql.Expression { return aggregation.NewAvg(e) },
	},
	sql.Function1{
		Name: "sum",
		Fn:   func(e sql.Expression) sql.Expression { return aggregation.NewSum(e) },
	},
	sql.Function1{
		Name: "first",
		Fn:   func(e sql.Expression) sql.Expression { return aggregation.NewFirst(e) },
	},
	sql.Function1{
		Name: "last",
		Fn:   func(e sql.Expression) sql.Expression { return aggregation.NewLast(e) },
	},
	sql.Function1{Name: "is_binary", Fn: NewIsBinary},
	sql.FunctionN{Name: "substring", Fn: NewSubstring},
	sql.Function3{Name: "substring_index", Fn: NewSubstringIndex},
	sql.FunctionN{Name: "mid", Fn: NewSubstring},
	sql.FunctionN{Name: "substr", Fn: NewSubstring},
	sql.Function1{Name: "date", Fn: NewDate},
	sql.Function1{Name: "year", Fn: NewYear},
	sql.Function1{Name: "month", Fn: NewMonth},
	sql.Function1{Name: "day", Fn: NewDay},
	sql.Function1{Name: "weekday", Fn: NewWeekday},
	sql.Function1{Name: "hour", Fn: NewHour},
	sql.Function1{Name: "minute", Fn: NewMinute},
	sql.Function1{Name: "second", Fn: NewSecond},
	sql.Function1{Name: "dayofweek", Fn: NewDayOfWeek},
	sql.Function1{Name: "dayofmonth", Fn: NewDay},
	sql.Function1{Name: "dayofyear", Fn: NewDayOfYear},
	sql.FunctionN{Name: "yearweek", Fn: NewYearWeek},
	sql.Function1{Name: "array_length", Fn: NewArrayLength},
	sql.Function2{Name: "split", Fn: NewSplit},
	sql.FunctionN{Name: "concat", Fn: NewConcat},
	sql.FunctionN{Name: "concat_ws", Fn: NewConcatWithSeparator},
	sql.FunctionN{Name: "coalesce", Fn: NewCoalesce},
	sql.Function1{Name: "lower", Fn: NewLower},
	sql.Function1{Name: "upper", Fn: NewUpper},
	sql.Function1{Name: "ceiling", Fn: NewCeil},
	sql.Function1{Name: "ceil", Fn: NewCeil},
	sql.Function1{Name: "floor", Fn: NewFloor},
	sql.FunctionN{Name: "round", Fn: NewRound},
	sql.Function0{Name: "connection_id", Fn: NewConnectionID},
	sql.Function1{Name: "soundex", Fn: NewSoundex},
	sql.FunctionN{Name: "json_extract", Fn: NewJSONExtract},
	sql.Function1{Name: "json_unquote", Fn: NewJSONUnquote},
	sql.Function1{Name: "ln", Fn: NewLogBaseFunc(float64(math.E))},
	sql.Function1{Name: "log2", Fn: NewLogBaseFunc(float64(2))},
	sql.Function1{Name: "log10", Fn: NewLogBaseFunc(float64(10))},
	sql.FunctionN{Name: "log", Fn: NewLog},
	sql.FunctionN{Name: "rpad", Fn: NewPadFunc(rPadType)},
	sql.FunctionN{Name: "lpad", Fn: NewPadFunc(lPadType)},
	sql.Function1{Name: "sqrt", Fn: NewSqrt},
	sql.Function2{Name: "pow", Fn: NewPower},
	sql.Function2{Name: "power", Fn: NewPower},
	sql.Function1{Name: "ltrim", Fn: NewTrimFunc(lTrimType)},
	sql.Function1{Name: "rtrim", Fn: NewTrimFunc(rTrimType)},
	sql.Function1{Name: "trim", Fn: NewTrimFunc(bTrimType)},
	sql.Function1{Name: "reverse", Fn: NewReverse},
	sql.Function2{Name: "repeat", Fn: NewRepeat},
	sql.Function3{Name: "replace", Fn: NewReplace},
	sql.Function2{Name: "ifnull", Fn: NewIfNull},
	sql.Function2{Name: "nullif", Fn: NewNullIf},
	sql.Function0{Name: "now", Fn: NewNow},
	sql.Function1{Name: "sleep", Fn: NewSleep},
	sql.Function1{Name: "to_base64", Fn: NewToBase64},
	sql.Function1{Name: "from_base64", Fn: NewFromBase64},
	sql.FunctionN{Name: "date_add", Fn: NewDateAdd},
	sql.FunctionN{Name: "date_sub", Fn: NewDateSub},
	sql.FunctionN{Name: "greatest", Fn: NewGreatest},
	sql.FunctionN{Name: "least", Fn: NewLeast},
	sql.Function1{Name: "length", Fn: NewLength},
	sql.Function1{Name: "char_length", Fn: NewCharLength},
	sql.Function1{Name: "character_length", Fn: NewCharLength},
	sql.Function1{Name: "explode", Fn: NewExplode},
	sql.FunctionN{Name: "regexp_matches", Fn: NewRegexpMatches},
}

Defaults is the function map with all the default functions.

View Source
var ErrConcatArrayWithOthers = errors.NewKind("can't concat a string array with any other elements")

ErrConcatArrayWithOthers is returned when there are more than 1 argument in concat and any of them is an array.

View Source
var ErrDivisionByZero = errors.NewKind("division by zero")
View Source
var ErrInvalidArgumentForLogarithm = errors.NewKind("invalid argument value for logarithm: %v")

ErrInvalidArgumentForLogarithm is returned when an invalid argument value is passed to a logarithm function

View Source
var ErrNegativeRepeatCount = errors.NewKind("negative Repeat count: %v")
View Source
var ErrUintOverflow = errors.NewKind(
	"Unsigned integer too big to fit on signed integer")
View Source
var ErrUnsupportedType = errors.NewKind("unsupported type for greatest/latest argument: %T")

ErrUnsupportedType is returned when an argument to Greatest or Latest is not numeric or string

Functions

func NewArrayLength

func NewArrayLength(array sql.Expression) sql.Expression

NewArrayLength creates a new ArrayLength UDF.

func NewCeil

func NewCeil(num sql.Expression) sql.Expression

NewCeil creates a new Ceil expression.

func NewCharLength

func NewCharLength(e sql.Expression) sql.Expression

NewCharLength returns a new CHAR_LENGTH function.

func NewCoalesce

func NewCoalesce(args ...sql.Expression) (sql.Expression, error)

NewCoalesce creates a new Coalesce sql.Expression.

func NewConcat

func NewConcat(args ...sql.Expression) (sql.Expression, error)

NewConcat creates a new Concat UDF.

func NewConcatWithSeparator

func NewConcatWithSeparator(args ...sql.Expression) (sql.Expression, error)

NewConcatWithSeparator creates a new NewConcatWithSeparator UDF.

func NewConnectionID

func NewConnectionID() sql.Expression

NewConnectionID creates a new ConnectionID UDF node.

func NewDatabase

func NewDatabase(c *sql.Catalog) func() sql.Expression

NewDatabase returns a new Database function

func NewDate

func NewDate(date sql.Expression) sql.Expression

NewDate returns a new Date node.

func NewDateAdd

func NewDateAdd(args ...sql.Expression) (sql.Expression, error)

NewDateAdd creates a new date add function.

func NewDateSub

func NewDateSub(args ...sql.Expression) (sql.Expression, error)

NewDateSub creates a new date add function.

func NewDay

func NewDay(date sql.Expression) sql.Expression

NewDay creates a new Day UDF.

func NewDayOfWeek

func NewDayOfWeek(date sql.Expression) sql.Expression

NewDayOfWeek creates a new DayOfWeek UDF.

func NewDayOfYear

func NewDayOfYear(date sql.Expression) sql.Expression

NewDayOfYear creates a new DayOfYear UDF.

func NewExplode

func NewExplode(child sql.Expression) sql.Expression

NewExplode creates a new Explode function.

func NewFloor

func NewFloor(num sql.Expression) sql.Expression

NewFloor returns a new Floor expression.

func NewFromBase64

func NewFromBase64(e sql.Expression) sql.Expression

NewFromBase64 creates a new FromBase64 expression.

func NewGenerate

func NewGenerate(child sql.Expression) sql.Expression

NewGenerate creates a new Generate function.

func NewGreatest

func NewGreatest(args ...sql.Expression) (sql.Expression, error)

NewGreatest creates a new Greatest UDF

func NewHour

func NewHour(date sql.Expression) sql.Expression

NewHour creates a new Hour UDF.

func NewIfNull

func NewIfNull(ex, value sql.Expression) sql.Expression

NewIfNull returns a new IFNULL UDF

func NewIsBinary

func NewIsBinary(e sql.Expression) sql.Expression

NewIsBinary creates a new IsBinary expression.

func NewJSONExtract

func NewJSONExtract(args ...sql.Expression) (sql.Expression, error)

NewJSONExtract creates a new JSONExtract UDF.

func NewJSONUnquote

func NewJSONUnquote(json sql.Expression) sql.Expression

NewJSONUnquote creates a new JSONUnquote UDF.

func NewLeast

func NewLeast(args ...sql.Expression) (sql.Expression, error)

NewLeast creates a new Least UDF

func NewLength

func NewLength(e sql.Expression) sql.Expression

NewLength returns a new LENGTH function.

func NewLog

func NewLog(args ...sql.Expression) (sql.Expression, error)

NewLog creates a new Log expression.

func NewLogBase

func NewLogBase(base float64, e sql.Expression) sql.Expression

NewLogBase creates a new LogBase expression.

func NewLogBaseFunc

func NewLogBaseFunc(base float64) func(e sql.Expression) sql.Expression

NewLogBaseFunc returns LogBase creator function with a specific base.

func NewLower

func NewLower(e sql.Expression) sql.Expression

NewLower creates a new Lower expression.

func NewMinute

func NewMinute(date sql.Expression) sql.Expression

NewMinute creates a new Minute UDF.

func NewMonth

func NewMonth(date sql.Expression) sql.Expression

NewMonth creates a new Month UDF.

func NewNow

func NewNow() sql.Expression

NewNow returns a new Now node.

func NewNullIf

func NewNullIf(ex1, ex2 sql.Expression) sql.Expression

NewNullIf returns a new NULLIF UDF

func NewPad

func NewPad(pType padType, args ...sql.Expression) (sql.Expression, error)

NewPad creates a new Pad expression.

func NewPadFunc

func NewPadFunc(pType padType) func(e ...sql.Expression) (sql.Expression, error)

NewPadFunc returns a Pad creator function with a specific padType.

func NewPower

func NewPower(e1, e2 sql.Expression) sql.Expression

NewPower creates a new Power expression.

func NewRegexpMatches

func NewRegexpMatches(args ...sql.Expression) (sql.Expression, error)

NewRegexpMatches creates a new RegexpMatches expression.

func NewRepeat

func NewRepeat(str sql.Expression, count sql.Expression) sql.Expression

NewRepeat creates a new Repeat expression.

func NewReplace

func NewReplace(str sql.Expression, fromStr sql.Expression, toStr sql.Expression) sql.Expression

NewReplace creates a new Replace expression.

func NewReverse

func NewReverse(e sql.Expression) sql.Expression

NewReverse creates a new Reverse expression.

func NewRound

func NewRound(args ...sql.Expression) (sql.Expression, error)

NewRound returns a new Round expression.

func NewSecond

func NewSecond(date sql.Expression) sql.Expression

NewSecond creates a new Second UDF.

func NewSleep

func NewSleep(e sql.Expression) sql.Expression

NewSleep creates a new Sleep expression.

func NewSoundex

func NewSoundex(e sql.Expression) sql.Expression

NewSoundex creates a new Soundex expression.

func NewSplit

func NewSplit(str, delimiter sql.Expression) sql.Expression

NewSplit creates a new Split UDF.

func NewSqrt

func NewSqrt(e sql.Expression) sql.Expression

NewSqrt creates a new Sqrt expression.

func NewSubstring

func NewSubstring(args ...sql.Expression) (sql.Expression, error)

NewSubstring creates a new substring UDF.

func NewSubstringIndex

func NewSubstringIndex(str, delim, count sql.Expression) sql.Expression

NewSubstringIndex creates a new SubstringIndex UDF.

func NewToBase64

func NewToBase64(e sql.Expression) sql.Expression

NewToBase64 creates a new ToBase64 expression.

func NewTrim

func NewTrim(tType trimType, str sql.Expression) sql.Expression

NewTrim creates a new Trim expression.

func NewTrimFunc

func NewTrimFunc(tType trimType) func(e sql.Expression) sql.Expression

NewTrimFunc returns a Trim creator function with a specific trimType.

func NewUpper

func NewUpper(e sql.Expression) sql.Expression

NewUpper creates a new Lower expression.

func NewVersion

func NewVersion(versionPostfix string) func(...sql.Expression) (sql.Expression, error)

NewVersion creates a new Version UDF.

func NewWeekday

func NewWeekday(date sql.Expression) sql.Expression

NewWeekday creates a new Weekday UDF.

func NewYear

func NewYear(date sql.Expression) sql.Expression

NewYear creates a new Year UDF.

func NewYearWeek

func NewYearWeek(args ...sql.Expression) (sql.Expression, error)

NewYearWeek creates a new YearWeek UDF

Types

type ArrayLength

type ArrayLength struct {
	expression.UnaryExpression
}

ArrayLength returns the length of an array.

func (*ArrayLength) Eval

func (f *ArrayLength) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*ArrayLength) String

func (f *ArrayLength) String() string

func (*ArrayLength) Type

func (*ArrayLength) Type() sql.Type

Type implements the Expression interface.

func (*ArrayLength) WithChildren

func (f *ArrayLength) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Ceil

type Ceil struct {
	expression.UnaryExpression
}

Ceil returns the smallest integer value not less than X.

func (*Ceil) Eval

func (c *Ceil) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Ceil) String

func (c *Ceil) String() string

func (*Ceil) Type

func (c *Ceil) Type() sql.Type

Type implements the Expression interface.

func (*Ceil) WithChildren

func (c *Ceil) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Coalesce

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

Coalesce returns the first non-NULL value in the list, or NULL if there are no non-NULL values.

func (*Coalesce) Children

func (c *Coalesce) Children() []sql.Expression

Children implements the sql.Expression interface.

func (*Coalesce) Eval

func (c *Coalesce) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the sql.Expression interface. The function evaluates the first non-nil argument. If the value is nil, then we keep going, otherwise we return the first non-nil value.

func (*Coalesce) IsNullable

func (c *Coalesce) IsNullable() bool

IsNullable implements the sql.Expression interface. Returns true if all arguments are nil or of the first non-nil argument is nullable, otherwise false.

func (*Coalesce) Resolved

func (c *Coalesce) Resolved() bool

Resolved implements the sql.Expression interface. The function checks if first non-nil argument is resolved.

func (*Coalesce) String

func (c *Coalesce) String() string

func (*Coalesce) Type

func (c *Coalesce) Type() sql.Type

Type implements the sql.Expression interface. The return type of Type() is the aggregated type of the argument types.

func (*Coalesce) WithChildren

func (*Coalesce) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Concat

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

Concat joins several strings together.

func (*Concat) Children

func (f *Concat) Children() []sql.Expression

Children implements the Expression interface.

func (*Concat) Eval

func (f *Concat) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Concat) IsNullable

func (f *Concat) IsNullable() bool

IsNullable implements the Expression interface.

func (*Concat) Resolved

func (f *Concat) Resolved() bool

Resolved implements the Expression interface.

func (*Concat) String

func (f *Concat) String() string

func (*Concat) Type

func (f *Concat) Type() sql.Type

Type implements the Expression interface.

func (*Concat) WithChildren

func (*Concat) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type ConcatWithSeparator

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

ConcatWithSeparator joins several strings together. The first argument is the separator for the rest of the arguments. The separator is added between the strings to be concatenated. The separator can be a string, as can the rest of the arguments. If the separator is NULL, the result is NULL.

func (*ConcatWithSeparator) Children

func (f *ConcatWithSeparator) Children() []sql.Expression

Children implements the Expression interface.

func (*ConcatWithSeparator) Eval

func (f *ConcatWithSeparator) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*ConcatWithSeparator) IsNullable

func (f *ConcatWithSeparator) IsNullable() bool

IsNullable implements the Expression interface.

func (*ConcatWithSeparator) Resolved

func (f *ConcatWithSeparator) Resolved() bool

Resolved implements the Expression interface.

func (*ConcatWithSeparator) String

func (f *ConcatWithSeparator) String() string

func (*ConcatWithSeparator) Type

func (f *ConcatWithSeparator) Type() sql.Type

Type implements the Expression interface.

func (*ConcatWithSeparator) WithChildren

func (*ConcatWithSeparator) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type ConnectionID

type ConnectionID struct{}

ConnectionID returns the current connection id.

func (ConnectionID) Children

func (ConnectionID) Children() []sql.Expression

Children implements the sql.Expression interface.

func (ConnectionID) Eval

func (ConnectionID) Eval(ctx *sql.Context, _ sql.Row) (interface{}, error)

Eval implements the sql.Expression interface.

func (ConnectionID) IsNullable

func (ConnectionID) IsNullable() bool

IsNullable implements the sql.Expression interface.

func (ConnectionID) Resolved

func (ConnectionID) Resolved() bool

Resolved implements the sql.Expression interface.

func (ConnectionID) String

func (ConnectionID) String() string

String implements the fmt.Stringer interface.

func (ConnectionID) Type

func (ConnectionID) Type() sql.Type

Type implements the sql.Expression interface.

func (ConnectionID) WithChildren

func (c ConnectionID) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type CountType

type CountType bool

CountType is the kind of length count.

type Database

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

Database stands for DATABASE() function

func (*Database) Children

func (db *Database) Children() []sql.Expression

Children implements the sql.Expression interface.

func (*Database) Eval

func (db *Database) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the sql.Expression interface.

func (*Database) IsNullable

func (db *Database) IsNullable() bool

IsNullable implements the sql.Expression interface. The function returns always true

func (*Database) Resolved

func (db *Database) Resolved() bool

Resolved implements the sql.Expression interface.

func (*Database) String

func (*Database) String() string

func (*Database) Type

func (db *Database) Type() sql.Type

Type implements the sql.Expression (sql.Text)

func (*Database) WithChildren

func (d *Database) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Date

type Date struct {
	expression.UnaryExpression
}

Date a function takes the DATE part out from a datetime expression.

func (*Date) Eval

func (d *Date) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Date) String

func (d *Date) String() string

func (*Date) Type

func (d *Date) Type() sql.Type

Type implements the Expression interface.

func (*Date) WithChildren

func (d *Date) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type DateAdd

type DateAdd struct {
	Date     sql.Expression
	Interval *expression.Interval
}

DateAdd adds an interval to a date.

func (*DateAdd) Children

func (d *DateAdd) Children() []sql.Expression

Children implements the sql.Expression interface.

func (*DateAdd) Eval

func (d *DateAdd) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the sql.Expression interface.

func (*DateAdd) IsNullable

func (d *DateAdd) IsNullable() bool

IsNullable implements the sql.Expression interface.

func (*DateAdd) Resolved

func (d *DateAdd) Resolved() bool

Resolved implements the sql.Expression interface.

func (*DateAdd) String

func (d *DateAdd) String() string

func (*DateAdd) Type

func (d *DateAdd) Type() sql.Type

Type implements the sql.Expression interface.

func (*DateAdd) WithChildren

func (d *DateAdd) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type DateSub

type DateSub struct {
	Date     sql.Expression
	Interval *expression.Interval
}

DateSub subtracts an interval from a date.

func (*DateSub) Children

func (d *DateSub) Children() []sql.Expression

Children implements the sql.Expression interface.

func (*DateSub) Eval

func (d *DateSub) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the sql.Expression interface.

func (*DateSub) IsNullable

func (d *DateSub) IsNullable() bool

IsNullable implements the sql.Expression interface.

func (*DateSub) Resolved

func (d *DateSub) Resolved() bool

Resolved implements the sql.Expression interface.

func (*DateSub) String

func (d *DateSub) String() string

func (*DateSub) Type

func (d *DateSub) Type() sql.Type

Type implements the sql.Expression interface.

func (*DateSub) WithChildren

func (d *DateSub) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Day

type Day struct {
	expression.UnaryExpression
}

Day is a function that returns the day of a date.

func (*Day) Eval

func (d *Day) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Day) String

func (d *Day) String() string

func (*Day) Type

func (d *Day) Type() sql.Type

Type implements the Expression interface.

func (*Day) WithChildren

func (d *Day) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type DayOfWeek

type DayOfWeek struct {
	expression.UnaryExpression
}

DayOfWeek is a function that returns the day of the week from a date where 1 = Sunday, ..., 7 = Saturday.

func (*DayOfWeek) Eval

func (d *DayOfWeek) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*DayOfWeek) String

func (d *DayOfWeek) String() string

func (*DayOfWeek) Type

func (d *DayOfWeek) Type() sql.Type

Type implements the Expression interface.

func (*DayOfWeek) WithChildren

func (d *DayOfWeek) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type DayOfYear

type DayOfYear struct {
	expression.UnaryExpression
}

DayOfYear is a function that returns the day of the year from a date.

func (*DayOfYear) Eval

func (d *DayOfYear) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*DayOfYear) String

func (d *DayOfYear) String() string

func (*DayOfYear) Type

func (d *DayOfYear) Type() sql.Type

Type implements the Expression interface.

func (*DayOfYear) WithChildren

func (d *DayOfYear) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Explode

type Explode struct {
	Child sql.Expression
}

Explode is a function that generates a row for each value of its child. It is a placeholder expression node.

func (*Explode) Children

func (e *Explode) Children() []sql.Expression

Children implements the sql.Expression interface.

func (*Explode) Eval

func (e *Explode) Eval(*sql.Context, sql.Row) (interface{}, error)

Eval implements the sql.Expression interface.

func (*Explode) IsNullable

func (e *Explode) IsNullable() bool

IsNullable implements the sql.Expression interface.

func (*Explode) Resolved

func (e *Explode) Resolved() bool

Resolved implements the sql.Expression interface.

func (*Explode) String

func (e *Explode) String() string

func (*Explode) Type

func (e *Explode) Type() sql.Type

Type implements the sql.Expression interface.

func (*Explode) WithChildren

func (e *Explode) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Floor

type Floor struct {
	expression.UnaryExpression
}

Floor returns the biggest integer value not less than X.

func (*Floor) Eval

func (f *Floor) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Floor) String

func (f *Floor) String() string

func (*Floor) Type

func (f *Floor) Type() sql.Type

Type implements the Expression interface.

func (*Floor) WithChildren

func (f *Floor) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type FromBase64

type FromBase64 struct {
	expression.UnaryExpression
}

FromBase64 is a function to decode a Base64-formatted string using the same dialect that MySQL's FROM_BASE64 uses

func (*FromBase64) Eval

func (t *FromBase64) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*FromBase64) IsNullable

func (t *FromBase64) IsNullable() bool

IsNullable implements the Expression interface.

func (*FromBase64) String

func (t *FromBase64) String() string

String implements the Stringer interface.

func (*FromBase64) Type

func (t *FromBase64) Type() sql.Type

Type implements the Expression interface.

func (*FromBase64) WithChildren

func (t *FromBase64) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Generate

type Generate struct {
	Child sql.Expression
}

Generate is a function that generates a row for each value of its child. This is the non-placeholder counterpart of Explode.

func (*Generate) Children

func (e *Generate) Children() []sql.Expression

Children implements the sql.Expression interface.

func (*Generate) Eval

func (e *Generate) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the sql.Expression interface.

func (*Generate) IsNullable

func (e *Generate) IsNullable() bool

IsNullable implements the sql.Expression interface.

func (*Generate) Resolved

func (e *Generate) Resolved() bool

Resolved implements the sql.Expression interface.

func (*Generate) String

func (e *Generate) String() string

func (*Generate) Type

func (e *Generate) Type() sql.Type

Type implements the sql.Expression interface.

func (*Generate) WithChildren

func (e *Generate) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Greatest

type Greatest struct {
	Args []sql.Expression
	// contains filtered or unexported fields
}

Greatest returns the argument with the greatest numerical or string value. It allows for numeric (ints anf floats) and string arguments and will return the used type when all arguments are of the same type or floats if there are numerically convertible strings or integers mixed with floats. When ints or floats are mixed with non numerically convertible strings, those are ignored.

func (*Greatest) Children

func (f *Greatest) Children() []sql.Expression

Children implements the Expression interface.

func (*Greatest) Eval

func (f *Greatest) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Greatest) IsNullable

func (f *Greatest) IsNullable() bool

IsNullable implements the Expression interface.

func (*Greatest) Resolved

func (f *Greatest) Resolved() bool

Resolved implements the Expression interface.

func (*Greatest) String

func (f *Greatest) String() string

func (*Greatest) Type

func (f *Greatest) Type() sql.Type

Type implements the Expression interface.

func (*Greatest) WithChildren

func (f *Greatest) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Hour

type Hour struct {
	expression.UnaryExpression
}

Hour is a function that returns the hour of a date.

func (*Hour) Eval

func (h *Hour) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Hour) String

func (h *Hour) String() string

func (*Hour) Type

func (h *Hour) Type() sql.Type

Type implements the Expression interface.

func (*Hour) WithChildren

func (h *Hour) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type IfNull

type IfNull struct {
	expression.BinaryExpression
}

IfNull function returns the specified value IF the expression is NULL, otherwise return the expression.

func (*IfNull) Eval

func (f *IfNull) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*IfNull) IsNullable

func (f *IfNull) IsNullable() bool

IsNullable implements the Expression interface.

func (*IfNull) String

func (f *IfNull) String() string

func (*IfNull) Type

func (f *IfNull) Type() sql.Type

Type implements the Expression interface.

func (*IfNull) WithChildren

func (f *IfNull) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type IsBinary

type IsBinary struct {
	expression.UnaryExpression
}

IsBinary is a function that returns whether a blob is binary or not.

func (*IsBinary) Eval

func (ib *IsBinary) Eval(
	ctx *sql.Context,
	row sql.Row,
) (interface{}, error)

Eval implements the Expression interface.

func (*IsBinary) String

func (ib *IsBinary) String() string

func (*IsBinary) Type

func (ib *IsBinary) Type() sql.Type

Type implements the Expression interface.

func (*IsBinary) WithChildren

func (ib *IsBinary) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type JSONExtract

type JSONExtract struct {
	JSON  sql.Expression
	Paths []sql.Expression
}

JSONExtract extracts data from a json document using json paths.

func (*JSONExtract) Children

func (j *JSONExtract) Children() []sql.Expression

Children implements the sql.Expression interface.

func (*JSONExtract) Eval

func (j *JSONExtract) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the sql.Expression interface.

func (*JSONExtract) IsNullable

func (j *JSONExtract) IsNullable() bool

IsNullable implements the sql.Expression interface.

func (*JSONExtract) Resolved

func (j *JSONExtract) Resolved() bool

Resolved implements the sql.Expression interface.

func (*JSONExtract) String

func (j *JSONExtract) String() string

func (*JSONExtract) Type

func (j *JSONExtract) Type() sql.Type

Type implements the sql.Expression interface.

func (*JSONExtract) WithChildren

func (j *JSONExtract) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type JSONUnquote

type JSONUnquote struct {
	expression.UnaryExpression
}

JSONUnquote unquotes JSON value and returns the result as a utf8mb4 string. Returns NULL if the argument is NULL. An error occurs if the value starts and ends with double quotes but is not a valid JSON string literal.

func (*JSONUnquote) Eval

func (js *JSONUnquote) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*JSONUnquote) String

func (js *JSONUnquote) String() string

func (*JSONUnquote) Type

func (*JSONUnquote) Type() sql.Type

Type implements the Expression interface.

func (*JSONUnquote) WithChildren

func (js *JSONUnquote) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Least

type Least struct {
	Args []sql.Expression
	// contains filtered or unexported fields
}

Least returns the argument with the least numerical or string value. It allows for numeric (ints anf floats) and string arguments and will return the used type when all arguments are of the same type or floats if there are numerically convertible strings or integers mixed with floats. When ints or floats are mixed with non numerically convertible strings, those are ignored.

func (*Least) Children

func (f *Least) Children() []sql.Expression

Children implements the Expression interface.

func (*Least) Eval

func (f *Least) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Least) IsNullable

func (f *Least) IsNullable() bool

IsNullable implements the Expression interface.

func (*Least) Resolved

func (f *Least) Resolved() bool

Resolved implements the Expression interface.

func (*Least) String

func (f *Least) String() string

func (*Least) Type

func (f *Least) Type() sql.Type

Type implements the Expression interface.

func (*Least) WithChildren

func (f *Least) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Length

type Length struct {
	expression.UnaryExpression
	CountType CountType
}

Length returns the length of a string or binary content, either in bytes or characters.

func (*Length) Eval

func (l *Length) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the sql.Expression interface.

func (*Length) String

func (l *Length) String() string

func (*Length) Type

func (l *Length) Type() sql.Type

Type implements the sql.Expression interface.

func (*Length) WithChildren

func (l *Length) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Log

type Log struct {
	expression.BinaryExpression
}

Log is a function that returns the natural logarithm of a value.

func (*Log) Children

func (l *Log) Children() []sql.Expression

Children implements the Expression interface.

func (*Log) Eval

func (l *Log) Eval(
	ctx *sql.Context,
	row sql.Row,
) (interface{}, error)

Eval implements the Expression interface.

func (*Log) IsNullable

func (l *Log) IsNullable() bool

IsNullable implements the Expression interface.

func (*Log) String

func (l *Log) String() string

func (*Log) Type

func (l *Log) Type() sql.Type

Type returns the resultant type of the function.

func (*Log) WithChildren

func (l *Log) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type LogBase

type LogBase struct {
	expression.UnaryExpression
	// contains filtered or unexported fields
}

LogBase is a function that returns the logarithm of a value with a specific base.

func (*LogBase) Eval

func (l *LogBase) Eval(
	ctx *sql.Context,
	row sql.Row,
) (interface{}, error)

Eval implements the Expression interface.

func (*LogBase) IsNullable

func (l *LogBase) IsNullable() bool

IsNullable implements the sql.Expression interface.

func (*LogBase) String

func (l *LogBase) String() string

func (*LogBase) Type

func (l *LogBase) Type() sql.Type

Type returns the resultant type of the function.

func (*LogBase) WithChildren

func (l *LogBase) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Lower

type Lower struct {
	expression.UnaryExpression
}

Lower is a function that returns the lowercase of the text provided.

func (*Lower) Eval

func (l *Lower) Eval(
	ctx *sql.Context,
	row sql.Row,
) (interface{}, error)

Eval implements the Expression interface.

func (*Lower) String

func (l *Lower) String() string

func (*Lower) Type

func (l *Lower) Type() sql.Type

Type implements the Expression interface.

func (*Lower) WithChildren

func (l *Lower) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Minute

type Minute struct {
	expression.UnaryExpression
}

Minute is a function that returns the minute of a date.

func (*Minute) Eval

func (m *Minute) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Minute) String

func (m *Minute) String() string

func (*Minute) Type

func (m *Minute) Type() sql.Type

Type implements the Expression interface.

func (*Minute) WithChildren

func (m *Minute) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Month

type Month struct {
	expression.UnaryExpression
}

Month is a function that returns the month of a date.

func (*Month) Eval

func (m *Month) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Month) String

func (m *Month) String() string

func (*Month) Type

func (m *Month) Type() sql.Type

Type implements the Expression interface.

func (*Month) WithChildren

func (m *Month) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Now

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

Now is a function that returns the current time.

func (*Now) Children

func (*Now) Children() []sql.Expression

Children implements the sql.Expression interface.

func (*Now) Eval

func (n *Now) Eval(*sql.Context, sql.Row) (interface{}, error)

Eval implements the sql.Expression interface.

func (*Now) IsNullable

func (*Now) IsNullable() bool

IsNullable implements the sql.Expression interface.

func (*Now) Resolved

func (*Now) Resolved() bool

Resolved implements the sql.Expression interface.

func (*Now) String

func (*Now) String() string

func (*Now) Type

func (*Now) Type() sql.Type

Type implements the sql.Expression interface.

func (*Now) WithChildren

func (n *Now) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type NullIf

type NullIf struct {
	expression.BinaryExpression
}

NullIf function compares two expressions and returns NULL if they are equal. Otherwise, the first expression is returned.

func (*NullIf) Eval

func (f *NullIf) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*NullIf) IsNullable

func (f *NullIf) IsNullable() bool

IsNullable implements the Expression interface.

func (*NullIf) String

func (f *NullIf) String() string

func (*NullIf) Type

func (f *NullIf) Type() sql.Type

Type implements the Expression interface.

func (*NullIf) WithChildren

func (f *NullIf) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Pad

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

Pad is a function that pads a string with another string.

func (*Pad) Children

func (p *Pad) Children() []sql.Expression

Children implements the Expression interface.

func (*Pad) Eval

func (p *Pad) Eval(
	ctx *sql.Context,
	row sql.Row,
) (interface{}, error)

Eval implements the Expression interface.

func (*Pad) IsNullable

func (p *Pad) IsNullable() bool

IsNullable implements the Expression interface.

func (*Pad) Resolved

func (p *Pad) Resolved() bool

Resolved implements the Expression interface.

func (*Pad) String

func (p *Pad) String() string

func (*Pad) Type

func (p *Pad) Type() sql.Type

Type implements the Expression interface.

func (*Pad) WithChildren

func (p *Pad) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Power

type Power struct {
	expression.BinaryExpression
}

Power is a function that returns value of X raised to the power of Y.

func (*Power) Eval

func (p *Power) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Power) IsNullable

func (p *Power) IsNullable() bool

IsNullable implements the Expression interface.

func (*Power) String

func (p *Power) String() string

func (*Power) Type

func (p *Power) Type() sql.Type

Type implements the Expression interface.

func (*Power) WithChildren

func (p *Power) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type RegexpMatches

type RegexpMatches struct {
	Text    sql.Expression
	Pattern sql.Expression
	Flags   sql.Expression
	// contains filtered or unexported fields
}

RegexpMatches returns the matches of a regular expression.

func (*RegexpMatches) Children

func (r *RegexpMatches) Children() []sql.Expression

Children implements the sql.Expression interface.

func (*RegexpMatches) Eval

func (r *RegexpMatches) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the sql.Expression interface.

func (*RegexpMatches) IsNullable

func (r *RegexpMatches) IsNullable() bool

IsNullable implements the sql.Expression interface.

func (*RegexpMatches) Resolved

func (r *RegexpMatches) Resolved() bool

Resolved implements the sql.Expression interface.

func (*RegexpMatches) String

func (r *RegexpMatches) String() string

func (*RegexpMatches) Type

func (r *RegexpMatches) Type() sql.Type

Type implements the sql.Expression interface.

func (*RegexpMatches) WithChildren

func (r *RegexpMatches) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the sql.Expression interface.

type Repeat

type Repeat struct {
	expression.BinaryExpression
}

Repeat is a function that returns the string repeated n times.

func (*Repeat) Eval

func (r *Repeat) Eval(
	ctx *sql.Context,
	row sql.Row,
) (interface{}, error)

Eval implements the Expression interface.

func (*Repeat) String

func (r *Repeat) String() string

func (*Repeat) Type

func (r *Repeat) Type() sql.Type

Type implements the Expression interface.

func (*Repeat) WithChildren

func (r *Repeat) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Replace

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

Replace is a function that returns a string with all occurrences of fromStr replaced by the string toStr

func (*Replace) Children

func (r *Replace) Children() []sql.Expression

Children implements the Expression interface.

func (*Replace) Eval

func (r *Replace) Eval(
	ctx *sql.Context,
	row sql.Row,
) (interface{}, error)

Eval implements the Expression interface.

func (*Replace) IsNullable

func (r *Replace) IsNullable() bool

IsNullable implements the Expression interface.

func (*Replace) Resolved

func (r *Replace) Resolved() bool

Resolved implements the Expression interface.

func (*Replace) String

func (r *Replace) String() string

func (*Replace) Type

func (r *Replace) Type() sql.Type

Type implements the Expression interface.

func (*Replace) WithChildren

func (r *Replace) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Reverse

type Reverse struct {
	expression.UnaryExpression
}

Reverse is a function that returns the reverse of the text provided.

func (*Reverse) Eval

func (r *Reverse) Eval(
	ctx *sql.Context,
	row sql.Row,
) (interface{}, error)

Eval implements the Expression interface.

func (*Reverse) String

func (r *Reverse) String() string

func (*Reverse) Type

func (r *Reverse) Type() sql.Type

Type implements the Expression interface.

func (*Reverse) WithChildren

func (r *Reverse) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Round

type Round struct {
	expression.BinaryExpression
}

Round returns the number (x) with (d) requested decimal places. If d is negative, the number is returned with the (abs(d)) least significant digits of it's integer part set to 0. If d is not specified or nil/null it defaults to 0.

func (*Round) Children

func (r *Round) Children() []sql.Expression

Children implements the Expression interface.

func (*Round) Eval

func (r *Round) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Round) IsNullable

func (r *Round) IsNullable() bool

IsNullable implements the Expression interface.

func (*Round) Resolved

func (r *Round) Resolved() bool

Resolved implements the Expression interface.

func (*Round) String

func (r *Round) String() string

func (*Round) Type

func (r *Round) Type() sql.Type

Type implements the Expression interface.

func (*Round) WithChildren

func (r *Round) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Second

type Second struct {
	expression.UnaryExpression
}

Second is a function that returns the second of a date.

func (*Second) Eval

func (s *Second) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Second) String

func (s *Second) String() string

func (*Second) Type

func (s *Second) Type() sql.Type

Type implements the Expression interface.

func (*Second) WithChildren

func (s *Second) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Sleep

type Sleep struct {
	expression.UnaryExpression
}

Sleep is a function that just waits for the specified number of seconds and returns 0. It can be useful to test timeouts or long queries.

func (*Sleep) Eval

func (s *Sleep) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Sleep) IsNullable

func (s *Sleep) IsNullable() bool

IsNullable implements the Expression interface.

func (*Sleep) String

func (s *Sleep) String() string

String implements the Stringer interface.

func (*Sleep) Type

func (s *Sleep) Type() sql.Type

Type implements the Expression interface.

func (*Sleep) WithChildren

func (s *Sleep) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Soundex

type Soundex struct {
	expression.UnaryExpression
}

Soundex is a function that returns the soundex of a string. Two strings that sound almost the same should have identical soundex strings. A standard soundex string is four characters long, but the SOUNDEX() function returns an arbitrarily long string.

func (*Soundex) Eval

func (s *Soundex) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Soundex) String

func (s *Soundex) String() string

func (*Soundex) Type

func (s *Soundex) Type() sql.Type

Type implements the Expression interface.

func (*Soundex) WithChildren

func (s *Soundex) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Split

type Split struct {
	expression.BinaryExpression
}

Split receives a string and returns the parts of it splitted by a delimiter.

func (*Split) Eval

func (f *Split) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Split) IsNullable

func (f *Split) IsNullable() bool

IsNullable implements the Expression interface.

func (*Split) String

func (f *Split) String() string

func (*Split) Type

func (*Split) Type() sql.Type

Type implements the Expression interface.

func (*Split) WithChildren

func (f *Split) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Sqrt

type Sqrt struct {
	expression.UnaryExpression
}

Sqrt is a function that returns the square value of the number provided.

func (*Sqrt) Eval

func (s *Sqrt) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Sqrt) IsNullable

func (s *Sqrt) IsNullable() bool

IsNullable implements the Expression interface.

func (*Sqrt) String

func (s *Sqrt) String() string

func (*Sqrt) Type

func (s *Sqrt) Type() sql.Type

Type implements the Expression interface.

func (*Sqrt) WithChildren

func (s *Sqrt) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Substring

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

Substring is a function to return a part of a string. This function behaves as the homonym MySQL function. Since Go strings are UTF8, this function does not return a direct sub string str[start:start+length], instead returns the substring of rune s. That is, "á"[0:1] does not return a partial unicode glyph, but "á" itself.

func (*Substring) Children

func (s *Substring) Children() []sql.Expression

Children implements the Expression interface.

func (*Substring) Eval

func (s *Substring) Eval(
	ctx *sql.Context,
	row sql.Row,
) (interface{}, error)

Eval implements the Expression interface.

func (*Substring) IsNullable

func (s *Substring) IsNullable() bool

IsNullable implements the Expression interface.

func (*Substring) Resolved

func (s *Substring) Resolved() bool

Resolved implements the Expression interface.

func (*Substring) String

func (s *Substring) String() string

func (*Substring) Type

func (*Substring) Type() sql.Type

Type implements the Expression interface.

func (*Substring) WithChildren

func (*Substring) WithChildren(children ...sql.Expression) (sql.Expression, error)

/ WithChildren implements the Expression interface.

type SubstringIndex

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

SubstringIndex returns the substring from string str before count occurrences of the delimiter delim. If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned. SUBSTRING_INDEX() performs a case-sensitive match when searching for delim.

func (*SubstringIndex) Children

func (s *SubstringIndex) Children() []sql.Expression

Children implements the Expression interface.

func (*SubstringIndex) Eval

func (s *SubstringIndex) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*SubstringIndex) IsNullable

func (s *SubstringIndex) IsNullable() bool

IsNullable implements the Expression interface.

func (*SubstringIndex) Resolved

func (s *SubstringIndex) Resolved() bool

Resolved implements the Expression interface.

func (*SubstringIndex) String

func (s *SubstringIndex) String() string

func (*SubstringIndex) Type

func (*SubstringIndex) Type() sql.Type

Type implements the Expression interface.

func (*SubstringIndex) WithChildren

func (s *SubstringIndex) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type ToBase64

type ToBase64 struct {
	expression.UnaryExpression
}

ToBase64 is a function to encode a string to the Base64 format using the same dialect that MySQL's TO_BASE64 uses

func (*ToBase64) Eval

func (t *ToBase64) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*ToBase64) IsNullable

func (t *ToBase64) IsNullable() bool

IsNullable implements the Expression interface.

func (*ToBase64) String

func (t *ToBase64) String() string

String implements the Stringer interface.

func (*ToBase64) Type

func (t *ToBase64) Type() sql.Type

Type implements the Expression interface.

func (*ToBase64) WithChildren

func (t *ToBase64) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Trim

type Trim struct {
	expression.UnaryExpression
	// contains filtered or unexported fields
}

Trim is a function that returns the string with prefix or suffix spaces removed based on the trimType

func (*Trim) Eval

func (t *Trim) Eval(
	ctx *sql.Context,
	row sql.Row,
) (interface{}, error)

Eval implements the Expression interface.

func (*Trim) IsNullable

func (t *Trim) IsNullable() bool

IsNullable implements the Expression interface.

func (*Trim) String

func (t *Trim) String() string

func (*Trim) Type

func (t *Trim) Type() sql.Type

Type implements the Expression interface.

func (*Trim) WithChildren

func (t *Trim) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Upper

type Upper struct {
	expression.UnaryExpression
}

Upper is a function that returns the UPPERCASE of the text provided.

func (*Upper) Eval

func (u *Upper) Eval(
	ctx *sql.Context,
	row sql.Row,
) (interface{}, error)

Eval implements the Expression interface.

func (*Upper) String

func (u *Upper) String() string

func (*Upper) Type

func (u *Upper) Type() sql.Type

Type implements the Expression interface.

func (*Upper) WithChildren

func (u *Upper) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Version

type Version string

Version is a function that returns server version.

func (Version) Children

func (f Version) Children() []sql.Expression

Children implements the Expression interface.

func (Version) Eval

func (f Version) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (Version) IsNullable

func (f Version) IsNullable() bool

IsNullable implements the Expression interface.

func (Version) Resolved

func (f Version) Resolved() bool

Resolved implements the Expression interface.

func (Version) String

func (f Version) String() string

func (Version) Type

func (f Version) Type() sql.Type

Type implements the Expression interface.

func (Version) WithChildren

func (f Version) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Weekday

type Weekday struct {
	expression.UnaryExpression
}

Weekday is a function that returns the weekday of a date where 0 = Monday, ..., 6 = Sunday.

func (*Weekday) Eval

func (d *Weekday) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Weekday) String

func (d *Weekday) String() string

func (*Weekday) Type

func (d *Weekday) Type() sql.Type

Type implements the Expression interface.

func (*Weekday) WithChildren

func (d *Weekday) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type Year

type Year struct {
	expression.UnaryExpression
}

Year is a function that returns the year of a date.

func (*Year) Eval

func (y *Year) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*Year) String

func (y *Year) String() string

func (*Year) Type

func (y *Year) Type() sql.Type

Type implements the Expression interface.

func (*Year) WithChildren

func (y *Year) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

type YearWeek

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

YearWeek is a function that returns year and week for a date. The year in the result may be different from the year in the date argument for the first and the last week of the year. Details: https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_yearweek

func (*YearWeek) Children

func (d *YearWeek) Children() []sql.Expression

Children implements the Expression interface.

func (*YearWeek) Eval

func (d *YearWeek) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)

Eval implements the Expression interface.

func (*YearWeek) IsNullable

func (d *YearWeek) IsNullable() bool

IsNullable implements the Expression interface.

func (*YearWeek) Resolved

func (d *YearWeek) Resolved() bool

Resolved implements the Expression interface.

func (*YearWeek) String

func (d *YearWeek) String() string

func (*YearWeek) Type

func (d *YearWeek) Type() sql.Type

Type implements the Expression interface.

func (*YearWeek) WithChildren

func (*YearWeek) WithChildren(children ...sql.Expression) (sql.Expression, error)

WithChildren implements the Expression interface.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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