Documentation
¶
Index ¶
- Variables
- func NewEmptyGroupConcat() sql.Expression
- func NewJSONObjectAgg(key, value sql.Expression) sql.Expression
- type Avg
- func (a *Avg) Eval(ctx *sql.Context, buffer sql.Row) (interface{}, error)
- func (a *Avg) FunctionName() string
- func (a *Avg) IsNullable() bool
- func (a *Avg) Merge(ctx *sql.Context, buffer, partial sql.Row) error
- func (a *Avg) NewBuffer() sql.Row
- func (a *Avg) String() string
- func (a *Avg) Type() sql.Type
- func (a *Avg) Update(ctx *sql.Context, buffer, row sql.Row) error
- func (a *Avg) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type Count
- func (c *Count) Eval(ctx *sql.Context, buffer sql.Row) (interface{}, error)
- func (c *Count) FunctionName() string
- func (c *Count) IsNullable() bool
- func (c *Count) Merge(ctx *sql.Context, buffer, partial sql.Row) error
- func (c *Count) NewBuffer() sql.Row
- func (c *Count) Resolved() bool
- func (c *Count) String() string
- func (c *Count) Type() sql.Type
- func (c *Count) Update(ctx *sql.Context, buffer, row sql.Row) error
- func (c *Count) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type CountDistinct
- func (c *CountDistinct) Eval(ctx *sql.Context, buffer sql.Row) (interface{}, error)
- func (c *CountDistinct) IsNullable() bool
- func (c *CountDistinct) Merge(ctx *sql.Context, buffer, partial sql.Row) error
- func (c *CountDistinct) NewBuffer() sql.Row
- func (c *CountDistinct) Resolved() bool
- func (c *CountDistinct) String() string
- func (c *CountDistinct) Type() sql.Type
- func (c *CountDistinct) Update(ctx *sql.Context, buffer, row sql.Row) error
- func (c *CountDistinct) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type First
- func (f *First) Eval(ctx *sql.Context, buffer sql.Row) (interface{}, error)
- func (f *First) FunctionName() string
- func (f *First) Merge(ctx *sql.Context, buffer, partial sql.Row) error
- func (f *First) NewBuffer() sql.Row
- func (f *First) String() string
- func (f *First) Type() sql.Type
- func (f *First) Update(ctx *sql.Context, buffer, row sql.Row) error
- func (f *First) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type GroupConcat
- func (g *GroupConcat) Children() []sql.Expression
- func (g *GroupConcat) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)
- func (g *GroupConcat) FunctionName() string
- func (g *GroupConcat) IsNullable() bool
- func (g *GroupConcat) Merge(ctx *sql.Context, buffer, partial sql.Row) error
- func (g *GroupConcat) NewBuffer() sql.Row
- func (g *GroupConcat) Resolved() bool
- func (g *GroupConcat) String() string
- func (g *GroupConcat) Type() sql.Type
- func (g *GroupConcat) Update(ctx *sql.Context, buffer, originalRow sql.Row) error
- func (g *GroupConcat) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type JSONArrayAgg
- func (j *JSONArrayAgg) Eval(ctx *sql.Context, buffer sql.Row) (interface{}, error)
- func (j *JSONArrayAgg) FunctionName() string
- func (j *JSONArrayAgg) IsNullable() bool
- func (j *JSONArrayAgg) Merge(ctx *sql.Context, buffer, partial sql.Row) error
- func (j *JSONArrayAgg) NewBuffer() sql.Row
- func (j *JSONArrayAgg) Resolved() bool
- func (j *JSONArrayAgg) String() string
- func (j *JSONArrayAgg) Type() sql.Type
- func (j *JSONArrayAgg) Update(ctx *sql.Context, buffer, row sql.Row) error
- func (j *JSONArrayAgg) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type JSONObjectAgg
- func (j JSONObjectAgg) Children() []sql.Expression
- func (j JSONObjectAgg) Eval(ctx *sql.Context, buffer sql.Row) (interface{}, error)
- func (j JSONObjectAgg) FunctionName() string
- func (j JSONObjectAgg) IsNullable() bool
- func (j JSONObjectAgg) Merge(ctx *sql.Context, buffer, partial sql.Row) error
- func (j JSONObjectAgg) NewBuffer() sql.Row
- func (j JSONObjectAgg) Resolved() bool
- func (j JSONObjectAgg) String() string
- func (j JSONObjectAgg) Type() sql.Type
- func (j JSONObjectAgg) Update(ctx *sql.Context, buffer, row sql.Row) error
- func (j JSONObjectAgg) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type Last
- func (l *Last) Eval(ctx *sql.Context, buffer sql.Row) (interface{}, error)
- func (l *Last) FunctionName() string
- func (l *Last) Merge(ctx *sql.Context, buffer, partial sql.Row) error
- func (l *Last) NewBuffer() sql.Row
- func (l *Last) String() string
- func (l *Last) Type() sql.Type
- func (l *Last) Update(ctx *sql.Context, buffer, row sql.Row) error
- func (l *Last) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type Max
- func (m *Max) DebugString() string
- func (m *Max) Eval(ctx *sql.Context, buffer sql.Row) (interface{}, error)
- func (m *Max) FunctionName() string
- func (m *Max) IsNullable() bool
- func (m *Max) Merge(ctx *sql.Context, buffer, partial sql.Row) error
- func (m *Max) NewBuffer() sql.Row
- func (m *Max) String() string
- func (m *Max) Type() sql.Type
- func (m *Max) Update(ctx *sql.Context, buffer, row sql.Row) error
- func (m *Max) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type Min
- func (m *Min) Eval(ctx *sql.Context, buffer sql.Row) (interface{}, error)
- func (m *Min) FunctionName() string
- func (m *Min) IsNullable() bool
- func (m *Min) Merge(ctx *sql.Context, buffer, partial sql.Row) error
- func (m *Min) NewBuffer() sql.Row
- func (m *Min) String() string
- func (m *Min) Type() sql.Type
- func (m *Min) Update(ctx *sql.Context, buffer, row sql.Row) error
- func (m *Min) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type Sum
- func (m *Sum) Eval(ctx *sql.Context, buffer sql.Row) (interface{}, error)
- func (m *Sum) FunctionName() string
- func (m *Sum) Merge(ctx *sql.Context, buffer, partial sql.Row) error
- func (m *Sum) NewBuffer() sql.Row
- func (m *Sum) String() string
- func (m *Sum) Type() sql.Type
- func (m *Sum) Update(ctx *sql.Context, buffer, row sql.Row) error
- func (m *Sum) WithChildren(children ...sql.Expression) (sql.Expression, error)
Constants ¶
This section is empty.
Variables ¶
var ErrUnsupportedJSONFunction = errors.NewKind("unsupported JSON function: %s")
ErrUnsupportedJSONFunction is returned when a unsupported JSON function is called.
Functions ¶
func NewEmptyGroupConcat ¶ added in v0.10.0
func NewEmptyGroupConcat() sql.Expression
func NewJSONObjectAgg ¶ added in v0.9.0
func NewJSONObjectAgg(key, value sql.Expression) sql.Expression
NewJSONObjectAgg creates a new JSONArrayAgg function.
Types ¶
type Avg ¶
type Avg struct {
expression.UnaryExpression
}
Avg node to calculate the average from numeric column
func (*Avg) Eval ¶
Eval implements AggregationExpression interface. (AggregationExpression[Expression]])
func (*Avg) FunctionName ¶
FunctionName implements sql.FunctionExpression
func (*Avg) IsNullable ¶
IsNullable implements AggregationExpression interface. (AggregationExpression[Expression]])
func (*Avg) NewBuffer ¶
NewBuffer implements AggregationExpression interface. (AggregationExpression)
func (*Avg) Type ¶
Type implements AggregationExpression interface. (AggregationExpression[Expression]])
func (*Avg) WithChildren ¶
func (a *Avg) WithChildren(children ...sql.Expression) (sql.Expression, error)
WithChildren implements the Expression interface.
type Count ¶
type Count struct {
expression.UnaryExpression
}
Count node to count how many rows are in the result set.
func (*Count) FunctionName ¶
FunctionName implements sql.FunctionExpression
func (*Count) IsNullable ¶
IsNullable returns whether the return value can be null.
func (*Count) WithChildren ¶
func (c *Count) WithChildren(children ...sql.Expression) (sql.Expression, error)
WithChildren implements the Expression interface.
type CountDistinct ¶
type CountDistinct struct {
expression.UnaryExpression
}
CountDistinct node to count how many rows are in the result set.
func NewCountDistinct ¶
func NewCountDistinct(e sql.Expression) *CountDistinct
NewCountDistinct creates a new CountDistinct node.
func (*CountDistinct) IsNullable ¶
func (c *CountDistinct) IsNullable() bool
IsNullable returns whether the return value can be null.
func (*CountDistinct) NewBuffer ¶
func (c *CountDistinct) NewBuffer() sql.Row
NewBuffer creates a new buffer for the aggregation.
func (*CountDistinct) Resolved ¶
func (c *CountDistinct) Resolved() bool
Resolved implements the Expression interface.
func (*CountDistinct) String ¶
func (c *CountDistinct) String() string
func (*CountDistinct) Type ¶
func (c *CountDistinct) Type() sql.Type
Type returns the type of the result.
func (*CountDistinct) WithChildren ¶
func (c *CountDistinct) WithChildren(children ...sql.Expression) (sql.Expression, error)
WithChildren implements the Expression interface.
type First ¶
type First struct {
expression.UnaryExpression
}
First aggregation returns the first of all values in the selected column. It implements the Aggregation interface.
func (*First) FunctionName ¶
FunctionName implements sql.FunctionExpression
func (*First) WithChildren ¶
func (f *First) WithChildren(children ...sql.Expression) (sql.Expression, error)
WithChildren implements the sql.Expression interface.
type GroupConcat ¶ added in v0.10.0
type GroupConcat struct {
// contains filtered or unexported fields
}
func NewGroupConcat ¶ added in v0.10.0
func NewGroupConcat(distinct string, orderBy sql.SortFields, separator string, selectExprs []sql.Expression, maxLen int) (*GroupConcat, error)
func (*GroupConcat) Children ¶ added in v0.10.0
func (g *GroupConcat) Children() []sql.Expression
func (*GroupConcat) Eval ¶ added in v0.10.0
cc: https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_group-concat
func (*GroupConcat) FunctionName ¶ added in v0.10.0
func (g *GroupConcat) FunctionName() string
func (*GroupConcat) IsNullable ¶ added in v0.10.0
func (g *GroupConcat) IsNullable() bool
func (*GroupConcat) NewBuffer ¶ added in v0.10.0
func (g *GroupConcat) NewBuffer() sql.Row
NewBuffer creates a new buffer for the aggregation.
func (*GroupConcat) Resolved ¶ added in v0.10.0
func (g *GroupConcat) Resolved() bool
func (*GroupConcat) String ¶ added in v0.10.0
func (g *GroupConcat) String() string
func (*GroupConcat) Type ¶ added in v0.10.0
func (g *GroupConcat) Type() sql.Type
cc: https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_group-concat for explanations on return type.
func (*GroupConcat) WithChildren ¶ added in v0.10.0
func (g *GroupConcat) WithChildren(children ...sql.Expression) (sql.Expression, error)
type JSONArrayAgg ¶ added in v0.9.0
type JSONArrayAgg struct {
expression.UnaryExpression
}
JSON_ARRAYAGG(col_or_expr) [over_clause]
JSONArrayAgg Aggregates a result set as a single JSON array whose elements consist of the rows. The order of elements in this array is undefined. The function acts on a column or an expression that evaluates to a single value. Returns NULL if the result contains no rows, or in the event of an error.
https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_json-arrayagg
see also: https://dev.mysql.com/doc/refman/8.0/en/json.html#json-normalization
func NewJSONArrayAgg ¶ added in v0.9.0
func NewJSONArrayAgg(arg sql.Expression) *JSONArrayAgg
NewJSONArrayAgg creates a new JSONArrayAgg function.
func (*JSONArrayAgg) FunctionName ¶ added in v0.9.0
func (j *JSONArrayAgg) FunctionName() string
FunctionName implements sql.FunctionExpression
func (*JSONArrayAgg) IsNullable ¶ added in v0.9.0
func (j *JSONArrayAgg) IsNullable() bool
IsNullable returns whether the return value can be null.
func (*JSONArrayAgg) NewBuffer ¶ added in v0.9.0
func (j *JSONArrayAgg) NewBuffer() sql.Row
NewBuffer creates a new buffer for the aggregation.
func (*JSONArrayAgg) Resolved ¶ added in v0.9.0
func (j *JSONArrayAgg) Resolved() bool
Resolved implements the Expression interface.
func (*JSONArrayAgg) String ¶ added in v0.9.0
func (j *JSONArrayAgg) String() string
func (*JSONArrayAgg) Type ¶ added in v0.9.0
func (j *JSONArrayAgg) Type() sql.Type
Type returns the type of the result.
func (*JSONArrayAgg) WithChildren ¶ added in v0.9.0
func (j *JSONArrayAgg) WithChildren(children ...sql.Expression) (sql.Expression, error)
WithChildren implements the Expression interface.
type JSONObjectAgg ¶ added in v0.9.0
type JSONObjectAgg struct {
// contains filtered or unexported fields
}
JSON_OBJECTAGG(key, value) [over_clause]
JSONObjectAgg Takes two column names or expressions as arguments, the first of these being used as a key and the second as a value, and returns a JSON object containing key-value pairs. Returns NULL if the result contains no rows, or in the event of an error. An error occurs if any key name is NULL or the number of arguments is not equal to 2.
https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_json-objectagg
see also: https://dev.mysql.com/doc/refman/8.0/en/json.html#json-normalization
func (JSONObjectAgg) Children ¶ added in v0.9.0
func (j JSONObjectAgg) Children() []sql.Expression
func (JSONObjectAgg) FunctionName ¶ added in v0.9.0
func (j JSONObjectAgg) FunctionName() string
FunctionName implements sql.FunctionExpression
func (JSONObjectAgg) IsNullable ¶ added in v0.9.0
func (j JSONObjectAgg) IsNullable() bool
func (JSONObjectAgg) NewBuffer ¶ added in v0.9.0
func (j JSONObjectAgg) NewBuffer() sql.Row
NewBuffer implements the Aggregation interface.
func (JSONObjectAgg) Resolved ¶ added in v0.9.0
func (j JSONObjectAgg) Resolved() bool
func (JSONObjectAgg) String ¶ added in v0.9.0
func (j JSONObjectAgg) String() string
func (JSONObjectAgg) Type ¶ added in v0.9.0
func (j JSONObjectAgg) Type() sql.Type
func (JSONObjectAgg) WithChildren ¶ added in v0.9.0
func (j JSONObjectAgg) WithChildren(children ...sql.Expression) (sql.Expression, error)
type Last ¶
type Last struct {
expression.UnaryExpression
}
Last aggregation returns the last of all values in the selected column. It implements the Aggregation interface.
func (*Last) FunctionName ¶
FunctionName implements sql.FunctionExpression
func (*Last) WithChildren ¶
func (l *Last) WithChildren(children ...sql.Expression) (sql.Expression, error)
WithChildren implements the sql.Expression interface.
type Max ¶
type Max struct {
expression.UnaryExpression
}
Max aggregation returns the greatest value of the selected column. It implements the Aggregation interface
func (*Max) DebugString ¶
func (*Max) FunctionName ¶
FunctionName implements sql.FunctionExpression
func (*Max) IsNullable ¶
IsNullable returns whether the return value can be null.
func (*Max) WithChildren ¶
func (m *Max) WithChildren(children ...sql.Expression) (sql.Expression, error)
WithChildren implements the Expression interface.
type Min ¶
type Min struct {
expression.UnaryExpression
}
Min aggregation returns the smallest value of the selected column. It implements the Aggregation interface
func (*Min) FunctionName ¶
FunctionName implements sql.FunctionExpression
func (*Min) IsNullable ¶
IsNullable returns whether the return value can be null.
func (*Min) WithChildren ¶
func (m *Min) WithChildren(children ...sql.Expression) (sql.Expression, error)
WithChildren implements the Expression interface.
type Sum ¶
type Sum struct {
expression.UnaryExpression
}
Sum aggregation returns the sum of all values in the selected column. It implements the Aggregation interface.
func (*Sum) FunctionName ¶
FunctionName implements sql.FunctionExpression
func (*Sum) WithChildren ¶
func (m *Sum) WithChildren(children ...sql.Expression) (sql.Expression, error)
WithChildren implements the Expression interface.