Documentation ¶
Index ¶
- Constants
- Variables
- func GetColumnsAndPrepareExpressions(exprs []sql.Expression) ([]string, []sql.Expression, error)
- func NewLeftMergeJoin(left, right sql.Node, cond sql.Expression) *plan.JoinNode
- func NewMergeJoin(left, right sql.Node, cond sql.Expression) *plan.JoinNode
- func ProjectRow(ctx *sql.Context, projections []sql.Expression, row sql.Row) (sql.Row, error)
- type BaseBuilder
- type EvalPartitionKeyValueIter
- type ExecBuilderFunc
- type NameAndSchema
Constants ¶
const SavePointName = "__go_mysql_server_starting_savepoint__"
Variables ¶
var DefaultBuilder = &BaseBuilder{}
var ErrMergeJoinExpectsComparerFilters = errors.New("merge join expects expression.Comparer filters, found: %T")
var ErrTableNotLockable = errors.NewKind("table %s is not lockable")
ErrTableNotLockable is returned whenever a lockable table can't be found.
Functions ¶
func GetColumnsAndPrepareExpressions ¶
func GetColumnsAndPrepareExpressions( exprs []sql.Expression, ) ([]string, []sql.Expression, error)
GetColumnsAndPrepareExpressions extracts the unique columns required by all those expressions and fixes the indexes of the GetFields in the expressions to match a row with only the returned columns in that same order.
func NewLeftMergeJoin ¶
func NewMergeJoin ¶
NewMergeJoin returns a node that performs a presorted merge join on two relations. We require 1) the join filter is an equality with disjoint join attributes, 2) the free attributes for a relation are a prefix for an index that will be used to return sorted rows.
Types ¶
type BaseBuilder ¶
type BaseBuilder struct{}
BaseBuilder converts a plan tree into a RowIter tree. All relational nodes have a build statement. Custom source nodes that provide rows that implement sql.ExecSourceRel are also built into the tree.
type EvalPartitionKeyValueIter ¶
type EvalPartitionKeyValueIter struct {
// contains filtered or unexported fields
}
func NewEvalPartitionKeyValueIter ¶
func NewEvalPartitionKeyValueIter(iter sql.PartitionIndexKeyValueIter, columns []string, exprs []sql.Expression) *EvalPartitionKeyValueIter
func (*EvalPartitionKeyValueIter) Close ¶
func (i *EvalPartitionKeyValueIter) Close(ctx *sql.Context) error
func (*EvalPartitionKeyValueIter) Next ¶
func (i *EvalPartitionKeyValueIter) Next(ctx *sql.Context) (sql.Partition, sql.IndexKeyValueIter, error)