Documentation
¶
Index ¶
- Variables
- func NewEmptyGroupConcat() sql.Expression
- func NewJSONObjectAgg(key, value sql.Expression) sql.Expression
- type Avg
- func (a *Avg) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)
- func (a *Avg) FunctionName() string
- func (a *Avg) IsNullable() bool
- func (a *Avg) NewBuffer() (sql.AggregationBuffer, error)
- func (a *Avg) String() string
- func (a *Avg) Type() sql.Type
- func (a *Avg) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type Count
- func (c *Count) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)
- func (c *Count) FunctionName() string
- func (c *Count) IsNullable() bool
- func (c *Count) NewBuffer() (sql.AggregationBuffer, error)
- func (c *Count) Resolved() bool
- func (c *Count) String() string
- func (c *Count) Type() sql.Type
- func (c *Count) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type CountDistinct
- func (c *CountDistinct) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)
- func (c *CountDistinct) FunctionName() string
- func (c *CountDistinct) IsNullable() bool
- func (c *CountDistinct) NewBuffer() (sql.AggregationBuffer, error)
- func (c *CountDistinct) Resolved() bool
- func (c *CountDistinct) String() string
- func (c *CountDistinct) Type() sql.Type
- func (c *CountDistinct) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type First
- func (f *First) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)
- func (f *First) FunctionName() string
- func (f *First) NewBuffer() (sql.AggregationBuffer, error)
- func (f *First) String() string
- func (f *First) Type() sql.Type
- 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) NewBuffer() (sql.AggregationBuffer, error)
- func (g *GroupConcat) Resolved() bool
- func (g *GroupConcat) String() string
- func (g *GroupConcat) Type() sql.Type
- func (g *GroupConcat) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type JSONArrayAgg
- func (j *JSONArrayAgg) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)
- func (j *JSONArrayAgg) FunctionName() string
- func (j *JSONArrayAgg) IsNullable() bool
- func (j *JSONArrayAgg) NewBuffer() (sql.AggregationBuffer, error)
- func (j *JSONArrayAgg) Resolved() bool
- func (j *JSONArrayAgg) String() string
- func (j *JSONArrayAgg) Type() sql.Type
- 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, row sql.Row) (interface{}, error)
- func (j JSONObjectAgg) FunctionName() string
- func (j JSONObjectAgg) IsNullable() bool
- func (j JSONObjectAgg) NewBuffer() (sql.AggregationBuffer, error)
- func (j JSONObjectAgg) Resolved() bool
- func (j JSONObjectAgg) String() string
- func (j JSONObjectAgg) Type() sql.Type
- func (j JSONObjectAgg) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type Last
- func (l *Last) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)
- func (l *Last) FunctionName() string
- func (l *Last) NewBuffer() (sql.AggregationBuffer, error)
- func (l *Last) String() string
- func (l *Last) Type() sql.Type
- func (l *Last) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type Max
- func (m *Max) DebugString() string
- func (m *Max) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)
- func (m *Max) FunctionName() string
- func (m *Max) IsNullable() bool
- func (m *Max) NewBuffer() (sql.AggregationBuffer, error)
- func (m *Max) String() string
- func (m *Max) Type() sql.Type
- func (m *Max) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type Min
- func (m *Min) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)
- func (m *Min) FunctionName() string
- func (m *Min) IsNullable() bool
- func (m *Min) NewBuffer() (sql.AggregationBuffer, error)
- func (m *Min) String() string
- func (m *Min) Type() sql.Type
- func (m *Min) WithChildren(children ...sql.Expression) (sql.Expression, error)
- type Sum
- func (m *Sum) Eval(ctx *sql.Context, row sql.Row) (interface{}, error)
- func (m *Sum) FunctionName() string
- func (m *Sum) NewBuffer() (sql.AggregationBuffer, error)
- func (m *Sum) String() string
- func (m *Sum) Type() sql.Type
- func (m *Sum) WithChildren(children ...sql.Expression) (sql.Expression, error)
Constants ¶
This section is empty.
Variables ¶
var ErrEvalUnsupportedOnAggregation = errors.NewKind("Unimplemented %s.Eval(). The code should have used AggregationBuffer.Eval(ctx).")
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) FunctionName ¶
FunctionName implements sql.FunctionExpression
func (*Avg) IsNullable ¶
IsNullable implements Expression interface.
func (*Avg) NewBuffer ¶
func (a *Avg) NewBuffer() (sql.AggregationBuffer, error)
NewBuffer implements Aggregation interface.
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) NewBuffer ¶
func (c *Count) NewBuffer() (sql.AggregationBuffer, error)
NewBuffer creates a new buffer for the aggregation.
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) FunctionName ¶ added in v0.11.0
func (c *CountDistinct) FunctionName() string
FunctionName implements sql.FunctionExpression
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.AggregationBuffer, error)
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) NewBuffer ¶
func (f *First) NewBuffer() (sql.AggregationBuffer, error)
NewBuffer creates a new buffer to compute the result.
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
Children implements the Expression interface.
func (*GroupConcat) FunctionName ¶ added in v0.10.0
func (g *GroupConcat) FunctionName() string
FunctionName implements the FunctionExpression interface.
func (*GroupConcat) IsNullable ¶ added in v0.10.0
func (g *GroupConcat) IsNullable() bool
IsNullable implements the Expression interface.
func (*GroupConcat) NewBuffer ¶ added in v0.10.0
func (g *GroupConcat) NewBuffer() (sql.AggregationBuffer, error)
NewBuffer creates a new buffer for the aggregation.
func (*GroupConcat) Resolved ¶ added in v0.10.0
func (g *GroupConcat) Resolved() bool
Resolved implements the Expression interface.
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
Type implements the Expression interface. 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)
WithChildren implements the Expression interface.
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.AggregationBuffer, error)
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
Children implements the Expression interface.
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
IsNullable implements the Expression interface.
func (JSONObjectAgg) NewBuffer ¶ added in v0.9.0
func (j JSONObjectAgg) NewBuffer() (sql.AggregationBuffer, error)
NewBuffer implements the Aggregation interface.
func (JSONObjectAgg) Resolved ¶ added in v0.9.0
func (j JSONObjectAgg) Resolved() bool
Resolved implements the Expression interface.
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
Type implements the Expression interface.
func (JSONObjectAgg) WithChildren ¶ added in v0.9.0
func (j JSONObjectAgg) WithChildren(children ...sql.Expression) (sql.Expression, error)
WithChildren implements the Expression interface.
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) NewBuffer ¶
func (l *Last) NewBuffer() (sql.AggregationBuffer, error)
NewBuffer creates a new buffer to compute the result.
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) NewBuffer ¶
func (m *Max) NewBuffer() (sql.AggregationBuffer, error)
NewBuffer creates a new buffer to compute the result.
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) NewBuffer ¶
func (m *Min) NewBuffer() (sql.AggregationBuffer, error)
NewBuffer creates a new buffer to compute the result.
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) NewBuffer ¶
func (m *Sum) NewBuffer() (sql.AggregationBuffer, error)
NewBuffer creates a new buffer to compute the result.
func (*Sum) WithChildren ¶
func (m *Sum) WithChildren(children ...sql.Expression) (sql.Expression, error)
WithChildren implements the Expression interface.