Documentation ¶
Index ¶
- Variables
- func Inspect(node sql.Node, f func(sql.Node) bool)
- func InspectExpressions(node sql.Node, f func(sql.Expression) bool)
- func IsBinary(node sql.Node) bool
- func IsUnary(node sql.Node) bool
- func NewShowCreateTable(db string, ctl *sql.Catalog, table string) sql.Node
- func NewShowIndexes(db sql.Database, table string, registry *sql.IndexRegistry) sql.Node
- func TransformExpressions(node sql.Node, f sql.TransformExprFunc) (sql.Node, error)
- func TransformExpressionsUp(node sql.Node, f sql.TransformExprFunc) (sql.Node, error)
- func TransformUp(node sql.Node, f sql.TransformNodeFunc) (sql.Node, error)
- func Walk(v Visitor, node sql.Node)
- func WalkExpressions(v expression.Visitor, node sql.Node)
- type BinaryNode
- type CreateIndex
- func (c *CreateIndex) Children() []sql.Node
- func (c *CreateIndex) Expressions() []sql.Expression
- func (c *CreateIndex) IsAsync() bool
- func (c *CreateIndex) Resolved() bool
- func (c *CreateIndex) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (c *CreateIndex) Schema() sql.Schema
- func (c *CreateIndex) String() string
- func (c *CreateIndex) WithChildren(children ...sql.Node) (sql.Node, error)
- func (c *CreateIndex) WithExpressions(exprs ...sql.Expression) (sql.Node, error)
- type CreateTable
- func (c *CreateTable) Children() []sql.Node
- func (c *CreateTable) Database() sql.Database
- func (c *CreateTable) Resolved() bool
- func (c *CreateTable) RowIter(s *sql.Context) (sql.RowIter, error)
- func (c *CreateTable) Schema() sql.Schema
- func (c *CreateTable) String() string
- func (c *CreateTable) WithChildren(children ...sql.Node) (sql.Node, error)
- func (c *CreateTable) WithDatabase(db sql.Database) (sql.Node, error)
- type CrossJoin
- type DeleteFrom
- func (p *DeleteFrom) Children() []sql.Node
- func (p *DeleteFrom) Execute(ctx *sql.Context) (int, error)
- func (p *DeleteFrom) Resolved() bool
- func (p *DeleteFrom) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (p *DeleteFrom) Schema() sql.Schema
- func (p DeleteFrom) String() string
- func (p *DeleteFrom) WithChildren(children ...sql.Node) (sql.Node, error)
- type Describe
- type DescribeQuery
- type Distinct
- type DropIndex
- type DropTable
- func (d *DropTable) Children() []sql.Node
- func (d *DropTable) Database() sql.Database
- func (d *DropTable) Resolved() bool
- func (d *DropTable) RowIter(s *sql.Context) (sql.RowIter, error)
- func (d *DropTable) Schema() sql.Schema
- func (d *DropTable) String() string
- func (d *DropTable) WithChildren(children ...sql.Node) (sql.Node, error)
- func (d *DropTable) WithDatabase(db sql.Database) (sql.Node, error)
- type Exchange
- type Filter
- func (p *Filter) Expressions() []sql.Expression
- func (p *Filter) Resolved() bool
- func (p *Filter) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (p *Filter) String() string
- func (p *Filter) WithChildren(children ...sql.Node) (sql.Node, error)
- func (p *Filter) WithExpressions(exprs ...sql.Expression) (sql.Node, error)
- type FilterIter
- type Generate
- func (g *Generate) Expressions() []sql.Expression
- func (g *Generate) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (g *Generate) Schema() sql.Schema
- func (g *Generate) String() string
- func (g *Generate) WithChildren(children ...sql.Node) (sql.Node, error)
- func (g *Generate) WithExpressions(exprs ...sql.Expression) (sql.Node, error)
- type GroupBy
- func (p *GroupBy) Expressions() []sql.Expression
- func (p *GroupBy) Resolved() bool
- func (p *GroupBy) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (p *GroupBy) Schema() sql.Schema
- func (p *GroupBy) String() string
- func (p *GroupBy) WithChildren(children ...sql.Node) (sql.Node, error)
- func (p *GroupBy) WithExpressions(exprs ...sql.Expression) (sql.Node, error)
- type Having
- func (h *Having) Expressions() []sql.Expression
- func (h *Having) Resolved() bool
- func (h *Having) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (h *Having) String() string
- func (h *Having) WithChildren(children ...sql.Node) (sql.Node, error)
- func (h *Having) WithExpressions(exprs ...sql.Expression) (sql.Node, error)
- type InnerJoin
- func (j *InnerJoin) Expressions() []sql.Expression
- func (j *InnerJoin) Resolved() bool
- func (j *InnerJoin) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (j *InnerJoin) Schema() sql.Schema
- func (j *InnerJoin) String() string
- func (j *InnerJoin) WithChildren(children ...sql.Node) (sql.Node, error)
- func (j *InnerJoin) WithExpressions(exprs ...sql.Expression) (sql.Node, error)
- type InsertInto
- type LeftJoin
- func (j *LeftJoin) Expressions() []sql.Expression
- func (j *LeftJoin) Resolved() bool
- func (j *LeftJoin) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (j *LeftJoin) Schema() sql.Schema
- func (j *LeftJoin) String() string
- func (j *LeftJoin) WithChildren(children ...sql.Node) (sql.Node, error)
- func (j *LeftJoin) WithExpressions(exprs ...sql.Expression) (sql.Node, error)
- type Limit
- type LockTables
- type NamedNotifyFunc
- type NaturalJoin
- type NotifyFunc
- type NullOrdering
- type Offset
- type OrderedDistinct
- type ProcessIndexableTable
- type ProcessTable
- type Project
- func (p *Project) Expressions() []sql.Expression
- func (p *Project) Resolved() bool
- func (p *Project) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (p *Project) Schema() sql.Schema
- func (p *Project) String() string
- func (p *Project) WithChildren(children ...sql.Node) (sql.Node, error)
- func (p *Project) WithExpressions(exprs ...sql.Expression) (sql.Node, error)
- type QueryProcess
- type ResolvedTable
- type RightJoin
- func (j *RightJoin) Expressions() []sql.Expression
- func (j *RightJoin) Resolved() bool
- func (j *RightJoin) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (j *RightJoin) Schema() sql.Schema
- func (j *RightJoin) String() string
- func (j *RightJoin) WithChildren(children ...sql.Node) (sql.Node, error)
- func (j *RightJoin) WithExpressions(exprs ...sql.Expression) (sql.Node, error)
- type Rollback
- type Set
- func (s *Set) Children() []sql.Node
- func (s *Set) Expressions() []sql.Expression
- func (s *Set) Resolved() bool
- func (s *Set) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (s *Set) Schema() sql.Schema
- func (s *Set) String() string
- func (s *Set) WithChildren(children ...sql.Node) (sql.Node, error)
- func (s *Set) WithExpressions(exprs ...sql.Expression) (sql.Node, error)
- type SetVariable
- type ShowCollation
- func (ShowCollation) Children() []sql.Node
- func (ShowCollation) Resolved() bool
- func (ShowCollation) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (ShowCollation) Schema() sql.Schema
- func (ShowCollation) String() string
- func (s ShowCollation) WithChildren(children ...sql.Node) (sql.Node, error)
- type ShowColumns
- type ShowCreateDatabase
- func (s *ShowCreateDatabase) Children() []sql.Node
- func (s *ShowCreateDatabase) Database() sql.Database
- func (s *ShowCreateDatabase) Resolved() bool
- func (s *ShowCreateDatabase) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (s *ShowCreateDatabase) Schema() sql.Schema
- func (s *ShowCreateDatabase) String() string
- func (s *ShowCreateDatabase) WithChildren(children ...sql.Node) (sql.Node, error)
- func (s *ShowCreateDatabase) WithDatabase(db sql.Database) (sql.Node, error)
- type ShowCreateTable
- func (n *ShowCreateTable) Children() []sql.Node
- func (n *ShowCreateTable) Resolved() bool
- func (n *ShowCreateTable) RowIter(*sql.Context) (sql.RowIter, error)
- func (n *ShowCreateTable) Schema() sql.Schema
- func (n *ShowCreateTable) String() string
- func (n *ShowCreateTable) WithChildren(children ...sql.Node) (sql.Node, error)
- type ShowDatabases
- func (*ShowDatabases) Children() []sql.Node
- func (p *ShowDatabases) Resolved() bool
- func (p *ShowDatabases) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (*ShowDatabases) Schema() sql.Schema
- func (p ShowDatabases) String() string
- func (p *ShowDatabases) WithChildren(children ...sql.Node) (sql.Node, error)
- type ShowIndexes
- func (n *ShowIndexes) Children() []sql.Node
- func (n *ShowIndexes) Database() sql.Database
- func (n *ShowIndexes) Resolved() bool
- func (n *ShowIndexes) RowIter(*sql.Context) (sql.RowIter, error)
- func (n *ShowIndexes) Schema() sql.Schema
- func (n *ShowIndexes) String() string
- func (n *ShowIndexes) WithChildren(children ...sql.Node) (sql.Node, error)
- func (n *ShowIndexes) WithDatabase(db sql.Database) (sql.Node, error)
- type ShowProcessList
- func (p *ShowProcessList) Children() []sql.Node
- func (p *ShowProcessList) Resolved() bool
- func (p *ShowProcessList) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (p *ShowProcessList) Schema() sql.Schema
- func (p *ShowProcessList) String() string
- func (p *ShowProcessList) WithChildren(children ...sql.Node) (sql.Node, error)
- type ShowTableStatus
- func (s *ShowTableStatus) Children() []sql.Node
- func (s *ShowTableStatus) Resolved() bool
- func (s *ShowTableStatus) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (s *ShowTableStatus) Schema() sql.Schema
- func (s *ShowTableStatus) String() string
- func (s *ShowTableStatus) WithChildren(children ...sql.Node) (sql.Node, error)
- type ShowTables
- func (*ShowTables) Children() []sql.Node
- func (p *ShowTables) Database() sql.Database
- func (p *ShowTables) Resolved() bool
- func (p *ShowTables) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (p *ShowTables) Schema() sql.Schema
- func (p ShowTables) String() string
- func (p *ShowTables) WithChildren(children ...sql.Node) (sql.Node, error)
- func (p *ShowTables) WithDatabase(db sql.Database) (sql.Node, error)
- type ShowVariables
- func (*ShowVariables) Children() []sql.Node
- func (sv *ShowVariables) Resolved() bool
- func (sv *ShowVariables) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (*ShowVariables) Schema() sql.Schema
- func (sv *ShowVariables) String() string
- func (sv *ShowVariables) WithChildren(children ...sql.Node) (sql.Node, error)
- type ShowWarnings
- type Sort
- func (s *Sort) Expressions() []sql.Expression
- func (s *Sort) Resolved() bool
- func (s *Sort) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (s *Sort) String() string
- func (s *Sort) WithChildren(children ...sql.Node) (sql.Node, error)
- func (s *Sort) WithExpressions(exprs ...sql.Expression) (sql.Node, error)
- type SortField
- type SortOrder
- type SubqueryAlias
- func (n *SubqueryAlias) Name() string
- func (n *SubqueryAlias) Opaque() bool
- func (n *SubqueryAlias) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (n *SubqueryAlias) Schema() sql.Schema
- func (n SubqueryAlias) String() string
- func (n *SubqueryAlias) WithChildren(children ...sql.Node) (sql.Node, error)
- type TableAlias
- type TableLock
- type UnaryNode
- type UnlockTables
- func (t *UnlockTables) Children() []sql.Node
- func (t *UnlockTables) Resolved() bool
- func (t *UnlockTables) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (t *UnlockTables) Schema() sql.Schema
- func (t *UnlockTables) String() string
- func (t *UnlockTables) WithChildren(children ...sql.Node) (sql.Node, error)
- type UnresolvedTable
- func (*UnresolvedTable) Children() []sql.Node
- func (t *UnresolvedTable) Name() string
- func (*UnresolvedTable) Resolved() bool
- func (*UnresolvedTable) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (*UnresolvedTable) Schema() sql.Schema
- func (t UnresolvedTable) String() string
- func (t *UnresolvedTable) WithChildren(children ...sql.Node) (sql.Node, error)
- type Update
- func (p *Update) Children() []sql.Node
- func (p *Update) Execute(ctx *sql.Context) (int, int, error)
- func (p *Update) Expressions() []sql.Expression
- func (p *Update) Resolved() bool
- func (p *Update) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (p *Update) Schema() sql.Schema
- func (p Update) String() string
- func (p *Update) WithChildren(children ...sql.Node) (sql.Node, error)
- func (p *Update) WithExpressions(newExprs ...sql.Expression) (sql.Node, error)
- type Use
- func (Use) Children() []sql.Node
- func (u *Use) Database() sql.Database
- func (u *Use) Resolved() bool
- func (u *Use) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (Use) Schema() sql.Schema
- func (u *Use) String() string
- func (u *Use) WithChildren(children ...sql.Node) (sql.Node, error)
- func (u *Use) WithDatabase(db sql.Database) (sql.Node, error)
- type Values
- func (p *Values) Children() []sql.Node
- func (p *Values) Expressions() []sql.Expression
- func (p *Values) Resolved() bool
- func (p *Values) RowIter(ctx *sql.Context) (sql.RowIter, error)
- func (p *Values) Schema() sql.Schema
- func (p *Values) String() string
- func (p *Values) WithChildren(children ...sql.Node) (sql.Node, error)
- func (p *Values) WithExpressions(exprs ...sql.Expression) (sql.Node, error)
- type Visitor
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNotIndexable is returned when the table is not indexable. ErrNotIndexable = errors.NewKind("the table is not indexable") // ErrInvalidIndexDriver is returned when the index driver can't be found. ErrInvalidIndexDriver = errors.NewKind("invalid driver index %q") // ErrExprTypeNotIndexable is returned when the expression type cannot be // indexed, such as BLOB or JSON. ErrExprTypeNotIndexable = errors.NewKind("expression %q with type %s cannot be indexed") )
var ( // ErrIndexNotFound is returned when the index cannot be found. ErrIndexNotFound = errors.NewKind("unable to find index %q on table %q of database %q") // ErrTableNotValid is returned when the table is not valid ErrTableNotValid = errors.NewKind("table is not valid") // ErrTableNotNameable is returned when the table is not nameable. ErrTableNotNameable = errors.NewKind("can't get name from table") // ErrIndexNotAvailable is returned when trying to delete an index that is // still not ready for usage. ErrIndexNotAvailable = errors.NewKind("index %q is still not ready for usage and can't be deleted") )
var DescribeSchema = sql.Schema{ {Name: "plan", Type: sql.Text}, }
DescribeSchema is the schema returned by a DescribeQuery node.
var EmptyTable = new(emptyTable)
EmptyTable is a node representing an empty table.
var ErrCreateTableNotSupported = errors.NewKind("tables cannot be created on database %s")
ErrCreateTable is thrown when the database doesn't support table creation
var ErrDeleteFromNotSupported = errors.NewKind("table doesn't support DELETE FROM")
var ErrDropTableNotSupported = errors.NewKind("tables cannot be dropped on database %s")
var ErrGroupBy = errors.NewKind("group by aggregation '%v' not supported")
ErrGroupBy is returned when the aggregation is not supported.
var ErrInsertIntoDuplicateColumn = errors.NewKind("duplicate column name %v")
var ErrInsertIntoMismatchValueCount = errors.NewKind("number of values does not match number of columns provided")
var ErrInsertIntoNonNullableDefaultNullColumn = errors.NewKind("column name '%v' is non-nullable but attempted to set default value of null")
var ErrInsertIntoNonNullableProvidedNull = errors.NewKind("column name '%v' is non-nullable but attempted to set a value of null")
var ErrInsertIntoNonexistentColumn = errors.NewKind("invalid column name %v")
var ErrInsertIntoNotSupported = errors.NewKind("table doesn't support INSERT INTO")
ErrInsertIntoNotSupported is thrown when a table doesn't support inserts
var ErrInsertIntoUnsupportedValues = errors.NewKind("%T is unsupported for inserts")
var ErrNoPartitionable = errors.NewKind("no partitionable node found in exchange tree")
ErrNoPartitionable is returned when no Partitionable node is found in the Exchange tree.
var ErrReplaceIntoNotSupported = errors.NewKind("table doesn't support REPLACE INTO")
var ErrTableNotLockable = errors.NewKind("table %s is not lockable")
ErrTableNotLockable is returned whenever a lockable table can't be found.
var ErrUnableSort = errors.NewKind("unable to sort")
ErrUnableSort is thrown when something happens on sorting
var ErrUnresolvedTable = errors.NewKind("unresolved table")
ErrUnresolvedTable is thrown when a table cannot be resolved
var ErrUpdateNotSupported = errors.NewKind("table doesn't support UPDATE")
var ErrUpdateUnexpectedSetResult = errors.NewKind("attempted to set field but expression returned %T")
var Nothing nothing
Nothing is a node that will return no rows.
Functions ¶
func Inspect ¶
Inspect traverses the plan in depth-first order: It starts by calling f(node); node must not be nil. If f returns true, Inspect invokes f recursively for each of the children of node, followed by a call of f(nil).
func InspectExpressions ¶
func InspectExpressions(node sql.Node, f func(sql.Expression) bool)
InspectExpressions traverses the plan and calls expression.Inspect on any expression it finds.
func NewShowCreateTable ¶
NewShowCreateTable creates a new ShowCreateTable node.
func NewShowIndexes ¶
NewShowIndexes creates a new ShowIndexes node.
func TransformExpressions ¶
TransformExpressions applies a transformation function to all expressions on the given node.
func TransformExpressionsUp ¶
TransformExpressionsUp applies a transformation function to all expressions on the given tree from the bottom up.
func TransformUp ¶
TransformUp applies a transformation function to the given tree from the bottom up.
func Walk ¶
Walk traverses the plan tree in depth-first order. It starts by calling v.Visit(node); node must not be nil. If the visitor returned by v.Visit(node) is not nil, Walk is invoked recursively with the returned visitor for each children of the node, followed by a call of v.Visit(nil) to the returned visitor.
func WalkExpressions ¶
func WalkExpressions(v expression.Visitor, node sql.Node)
WalkExpressions traverses the plan and calls expression.Walk on any expression it finds.
Types ¶
type BinaryNode ¶
BinaryNode is a node with two children.
func (BinaryNode) Children ¶
func (n BinaryNode) Children() []sql.Node
Children implements the Node interface.
func (BinaryNode) Resolved ¶
func (n BinaryNode) Resolved() bool
Resolved implements the Resolvable interface.
type CreateIndex ¶
type CreateIndex struct { Name string Table sql.Node Exprs []sql.Expression Driver string Config map[string]string Catalog *sql.Catalog CurrentDatabase string Async bool }
CreateIndex is a node to create an index.
func NewCreateIndex ¶
func NewCreateIndex( name string, table sql.Node, exprs []sql.Expression, driver string, config map[string]string, ) *CreateIndex
NewCreateIndex creates a new CreateIndex node.
func (*CreateIndex) Children ¶
func (c *CreateIndex) Children() []sql.Node
Children implements the Node interface.
func (*CreateIndex) Expressions ¶
func (c *CreateIndex) Expressions() []sql.Expression
Expressions implements the Expressioner interface.
func (*CreateIndex) IsAsync ¶
func (c *CreateIndex) IsAsync() bool
IsAsync implements the AsyncNode interface.
func (*CreateIndex) Resolved ¶
func (c *CreateIndex) Resolved() bool
Resolved implements the Node interface.
func (*CreateIndex) Schema ¶
func (c *CreateIndex) Schema() sql.Schema
Schema implements the Node interface.
func (*CreateIndex) String ¶
func (c *CreateIndex) String() string
func (*CreateIndex) WithChildren ¶
WithChildren implements the Node interface.
func (*CreateIndex) WithExpressions ¶
func (c *CreateIndex) WithExpressions(exprs ...sql.Expression) (sql.Node, error)
WithExpressions implements the Expressioner interface.
type CreateTable ¶
type CreateTable struct {
// contains filtered or unexported fields
}
CreateTable is a node describing the creation of some table.
func NewCreateTable ¶
NewCreateTable creates a new CreateTable node
func (*CreateTable) Children ¶
func (c *CreateTable) Children() []sql.Node
Children implements the Node interface.
func (*CreateTable) Database ¶
func (c *CreateTable) Database() sql.Database
Database implements the sql.Databaser interface.
func (*CreateTable) Resolved ¶
func (c *CreateTable) Resolved() bool
Resolved implements the Resolvable interface.
func (*CreateTable) Schema ¶
func (c *CreateTable) Schema() sql.Schema
Schema implements the Node interface.
func (*CreateTable) String ¶
func (c *CreateTable) String() string
func (*CreateTable) WithChildren ¶
WithChildren implements the Node interface.
func (*CreateTable) WithDatabase ¶
WithDatabase implements the sql.Databaser interface.
type CrossJoin ¶
type CrossJoin struct {
BinaryNode
}
CrossJoin is a cross join between two tables.
func NewCrossJoin ¶
NewCrossJoin creates a new cross join node from two tables.
type DeleteFrom ¶
DeleteFrom is a node describing a deletion from some table.
func NewDeleteFrom ¶
func NewDeleteFrom(n sql.Node) *DeleteFrom
NewDeleteFrom creates a DeleteFrom node.
func (*DeleteFrom) Children ¶
func (p *DeleteFrom) Children() []sql.Node
func (*DeleteFrom) Execute ¶
func (p *DeleteFrom) Execute(ctx *sql.Context) (int, error)
Execute deletes the rows in the database.
func (*DeleteFrom) Resolved ¶
func (p *DeleteFrom) Resolved() bool
Resolved implements the Resolvable interface.
func (*DeleteFrom) Schema ¶
func (p *DeleteFrom) Schema() sql.Schema
Schema implements the Node interface.
func (DeleteFrom) String ¶
func (p DeleteFrom) String() string
func (*DeleteFrom) WithChildren ¶
WithChildren implements the Node interface.
type Describe ¶
type Describe struct {
UnaryNode
}
Describe is a node that describes its children.
func NewDescribe ¶
NewDescribe creates a new Describe node.
type DescribeQuery ¶
DescribeQuery returns the description of the query plan.
func NewDescribeQuery ¶
func NewDescribeQuery(format string, child sql.Node) *DescribeQuery
NewDescribeQuery creates a new DescribeQuery node.
func (*DescribeQuery) Schema ¶
func (d *DescribeQuery) Schema() sql.Schema
Schema implements the Node interface.
func (*DescribeQuery) String ¶
func (d *DescribeQuery) String() string
func (*DescribeQuery) WithChildren ¶
WithChildren implements the Node interface.
type Distinct ¶
type Distinct struct {
UnaryNode
}
Distinct is a node that ensures all rows that come from it are unique.
func NewDistinct ¶
NewDistinct creates a new Distinct node.
type DropIndex ¶
DropIndex is a node to drop an index.
func NewDropIndex ¶
NewDropIndex creates a new DropIndex node.
type DropTable ¶
type DropTable struct {
// contains filtered or unexported fields
}
DropTable is a node describing dropping one or more tables
func NewDropTable ¶
NewDropTable creates a new DropTable node
func (*DropTable) WithChildren ¶
WithChildren implements the Node interface.
type Exchange ¶
Exchange is a node that can parallelize the underlying tree iterating partitions concurrently.
func NewExchange ¶
NewExchange creates a new Exchange node.
type Filter ¶
type Filter struct { UnaryNode Expression sql.Expression }
Filter skips rows that don't match a certain expression.
func NewFilter ¶
func NewFilter(expression sql.Expression, child sql.Node) *Filter
NewFilter creates a new filter node.
func (*Filter) Expressions ¶
func (p *Filter) Expressions() []sql.Expression
Expressions implements the Expressioner interface.
func (*Filter) WithChildren ¶
WithChildren implements the Node interface.
func (*Filter) WithExpressions ¶
WithExpressions implements the Expressioner interface.
type FilterIter ¶
type FilterIter struct {
// contains filtered or unexported fields
}
FilterIter is an iterator that filters another iterator and skips rows that don't match the given condition.
func NewFilterIter ¶
func NewFilterIter( ctx *sql.Context, cond sql.Expression, child sql.RowIter, ) *FilterIter
NewFilterIter creates a new FilterIter.
func (*FilterIter) Close ¶
func (i *FilterIter) Close() error
Close implements the RowIter interface.
type Generate ¶
type Generate struct { UnaryNode Column *expression.GetField }
Generate will explode rows using a generator.
func NewGenerate ¶
func NewGenerate(child sql.Node, col *expression.GetField) *Generate
NewGenerate creates a new generate node.
func (*Generate) Expressions ¶
func (g *Generate) Expressions() []sql.Expression
Expressions implements the Expressioner interface.
func (*Generate) WithChildren ¶
WithChildren implements the Node interface.
func (*Generate) WithExpressions ¶
WithExpressions implements the Expressioner interface.
type GroupBy ¶
type GroupBy struct { UnaryNode Aggregate []sql.Expression Grouping []sql.Expression }
GroupBy groups the rows by some expressions.
func NewGroupBy ¶
func NewGroupBy( aggregate []sql.Expression, grouping []sql.Expression, child sql.Node, ) *GroupBy
NewGroupBy creates a new GroupBy node.
func (*GroupBy) Expressions ¶
func (p *GroupBy) Expressions() []sql.Expression
Expressions implements the Expressioner interface.
func (*GroupBy) WithChildren ¶
WithChildren implements the Node interface.
func (*GroupBy) WithExpressions ¶
WithExpressions implements the Node interface.
type Having ¶
type Having struct { UnaryNode Cond sql.Expression }
Having node is a filter that supports aggregate expressions. A having node is identical to a filter node in behaviour. The difference is that some analyzer rules work specifically on having clauses and not filters. For that reason, Having is a completely new node instead of using just filter.
func NewHaving ¶
func NewHaving(cond sql.Expression, child sql.Node) *Having
NewHaving creates a new having node.
func (*Having) Expressions ¶
func (h *Having) Expressions() []sql.Expression
Expressions implements the sql.Expressioner interface.
func (*Having) WithChildren ¶
WithChildren implements the Node interface.
func (*Having) WithExpressions ¶
WithExpressions implements the Expressioner interface.
type InnerJoin ¶
type InnerJoin struct { BinaryNode Cond sql.Expression }
InnerJoin is an inner join between two tables.
func NewInnerJoin ¶
func NewInnerJoin(left, right sql.Node, cond sql.Expression) *InnerJoin
NewInnerJoin creates a new inner join node from two tables.
func (*InnerJoin) Expressions ¶
func (j *InnerJoin) Expressions() []sql.Expression
Expressions implements the Expressioner interface.
func (*InnerJoin) WithChildren ¶
WithChildren implements the Node interface.
func (*InnerJoin) WithExpressions ¶
WithExpressions implements the Expressioner interface.
type InsertInto ¶
type InsertInto struct { BinaryNode Columns []string IsReplace bool }
InsertInto is a node describing the insertion into some table.
func NewInsertInto ¶
func NewInsertInto(dst, src sql.Node, isReplace bool, cols []string) *InsertInto
NewInsertInto creates an InsertInto node.
func (*InsertInto) Execute ¶
func (p *InsertInto) Execute(ctx *sql.Context) (int, error)
Execute inserts the rows in the database.
func (*InsertInto) Schema ¶
func (p *InsertInto) Schema() sql.Schema
Schema implements the Node interface.
func (InsertInto) String ¶
func (p InsertInto) String() string
func (*InsertInto) WithChildren ¶
WithChildren implements the Node interface.
type LeftJoin ¶
type LeftJoin struct { BinaryNode Cond sql.Expression }
LeftJoin is a left join between two tables.
func NewLeftJoin ¶
func NewLeftJoin(left, right sql.Node, cond sql.Expression) *LeftJoin
NewLeftJoin creates a new left join node from two tables.
func (*LeftJoin) Expressions ¶
func (j *LeftJoin) Expressions() []sql.Expression
Expressions implements the Expressioner interface.
func (*LeftJoin) WithChildren ¶
WithChildren implements the Node interface.
func (*LeftJoin) WithExpressions ¶
WithExpressions implements the Expressioner interface.
type Limit ¶
Limit is a node that only allows up to N rows to be retrieved.
type LockTables ¶
LockTables will lock tables for the session in which it's executed.
func NewLockTables ¶
func NewLockTables(locks []*TableLock) *LockTables
NewLockTables creates a new LockTables node.
func (*LockTables) Children ¶
func (t *LockTables) Children() []sql.Node
Children implements the sql.Node interface.
func (*LockTables) Resolved ¶
func (t *LockTables) Resolved() bool
Resolved implements the sql.Node interface.
func (*LockTables) Schema ¶
func (t *LockTables) Schema() sql.Schema
Schema implements the sql.Node interface.
func (*LockTables) String ¶
func (t *LockTables) String() string
func (*LockTables) WithChildren ¶
WithChildren implements the Node interface.
type NamedNotifyFunc ¶
type NamedNotifyFunc func(name string)
NamedNotifyFunc is a function to notify about some event with a string argument.
type NaturalJoin ¶
type NaturalJoin struct {
BinaryNode
}
NaturalJoin is a join that automatically joins by all the columns with the same name. NaturalJoin is a placeholder node, it should be transformed into an INNER JOIN during analysis.
func NewNaturalJoin ¶
func NewNaturalJoin(left, right sql.Node) *NaturalJoin
NewNaturalJoin returns a new NaturalJoin node.
func (NaturalJoin) Resolved ¶
func (NaturalJoin) Resolved() bool
Resolved implements the Node interface.
func (NaturalJoin) Schema ¶
func (NaturalJoin) Schema() sql.Schema
Schema implements the Node interface.
func (NaturalJoin) String ¶
func (j NaturalJoin) String() string
func (*NaturalJoin) WithChildren ¶
WithChildren implements the Node interface.
type NullOrdering ¶
type NullOrdering byte
NullOrdering represents how to order based on null values.
const ( // NullsFirst puts the null values before any other values. NullsFirst NullOrdering = iota // NullsLast puts the null values after all other values. NullsLast NullOrdering = 2 )
type Offset ¶
Offset is a node that skips the first N rows.
type OrderedDistinct ¶
type OrderedDistinct struct {
UnaryNode
}
OrderedDistinct is a Distinct node optimized for sorted row sets. It's 2 orders of magnitude faster and uses 2 orders of magnitude less memory.
func NewOrderedDistinct ¶
func NewOrderedDistinct(child sql.Node) *OrderedDistinct
NewOrderedDistinct creates a new OrderedDistinct node.
func (*OrderedDistinct) Resolved ¶
func (d *OrderedDistinct) Resolved() bool
Resolved implements the Resolvable interface.
func (OrderedDistinct) String ¶
func (d OrderedDistinct) String() string
func (*OrderedDistinct) WithChildren ¶
WithChildren implements the Node interface.
type ProcessIndexableTable ¶
type ProcessIndexableTable struct { sql.IndexableTable OnPartitionDone NamedNotifyFunc OnPartitionStart NamedNotifyFunc OnRowNext NamedNotifyFunc }
ProcessIndexableTable is a wrapper for sql.Tables inside a query process that support indexing. It notifies the process manager about the status of a query when a partition is processed.
func NewProcessIndexableTable ¶
func NewProcessIndexableTable(t sql.IndexableTable, onPartitionDone, onPartitionStart, OnRowNext NamedNotifyFunc) *ProcessIndexableTable
NewProcessIndexableTable returns a new ProcessIndexableTable.
func (*ProcessIndexableTable) IndexKeyValues ¶
func (t *ProcessIndexableTable) IndexKeyValues( ctx *sql.Context, columns []string, ) (sql.PartitionIndexKeyValueIter, error)
IndexKeyValues implements the sql.IndexableTable interface.
func (*ProcessIndexableTable) PartitionRows ¶
func (t *ProcessIndexableTable) PartitionRows(ctx *sql.Context, p sql.Partition) (sql.RowIter, error)
PartitionRows implements the sql.Table interface.
func (*ProcessIndexableTable) Underlying ¶
func (t *ProcessIndexableTable) Underlying() sql.Table
Underlying implements sql.TableWrapper interface.
type ProcessTable ¶
type ProcessTable struct { sql.Table OnPartitionDone NamedNotifyFunc OnPartitionStart NamedNotifyFunc OnRowNext NamedNotifyFunc }
ProcessTable is a wrapper for sql.Tables inside a query process. It notifies the process manager about the status of a query when a partition is processed.
func NewProcessTable ¶
func NewProcessTable(t sql.Table, onPartitionDone, onPartitionStart, OnRowNext NamedNotifyFunc) *ProcessTable
NewProcessTable returns a new ProcessTable.
func (*ProcessTable) PartitionRows ¶
PartitionRows implements the sql.Table interface.
func (*ProcessTable) Underlying ¶
func (t *ProcessTable) Underlying() sql.Table
Underlying implements sql.TableWrapper interface.
type Project ¶
type Project struct { UnaryNode // Expression projected. Projections []sql.Expression }
Project is a projection of certain expression from the children node.
func NewProject ¶
func NewProject(expressions []sql.Expression, child sql.Node) *Project
NewProject creates a new projection.
func (*Project) Expressions ¶
func (p *Project) Expressions() []sql.Expression
Expressions implements the Expressioner interface.
func (*Project) WithChildren ¶
WithChildren implements the Node interface.
func (*Project) WithExpressions ¶
WithExpressions implements the Expressioner interface.
type QueryProcess ¶
type QueryProcess struct { UnaryNode Notify NotifyFunc }
QueryProcess represents a running query process node. It will use a callback to notify when it has finished running.
func NewQueryProcess ¶
func NewQueryProcess(node sql.Node, notify NotifyFunc) *QueryProcess
NewQueryProcess creates a new QueryProcess node.
func (*QueryProcess) String ¶
func (p *QueryProcess) String() string
func (*QueryProcess) WithChildren ¶
WithChildren implements the Node interface.
type ResolvedTable ¶
ResolvedTable represents a resolved SQL Table.
func NewResolvedTable ¶
func NewResolvedTable(table sql.Table) *ResolvedTable
NewResolvedTable creates a new instance of ResolvedTable.
func (*ResolvedTable) Children ¶
func (*ResolvedTable) Children() []sql.Node
Children implements the Node interface.
func (*ResolvedTable) Resolved ¶
func (*ResolvedTable) Resolved() bool
Resolved implements the Resolvable interface.
func (*ResolvedTable) WithChildren ¶
WithChildren implements the Node interface.
type RightJoin ¶
type RightJoin struct { BinaryNode Cond sql.Expression }
RightJoin is a left join between two tables.
func NewRightJoin ¶
func NewRightJoin(left, right sql.Node, cond sql.Expression) *RightJoin
NewRightJoin creates a new right join node from two tables.
func (*RightJoin) Expressions ¶
func (j *RightJoin) Expressions() []sql.Expression
Expressions implements the Expressioner interface.
func (*RightJoin) WithChildren ¶
WithChildren implements the Node interface.
func (*RightJoin) WithExpressions ¶
WithExpressions implements the Expressioner interface.
type Rollback ¶
type Rollback struct{}
Rollback undoes the changes performed in a transaction.
type Set ¶
type Set struct {
Variables []SetVariable
}
Set configuration variables. Right now, only session variables are supported.
func (*Set) Expressions ¶
func (s *Set) Expressions() []sql.Expression
Expressions implements the sql.Expressioner interface.
func (*Set) WithChildren ¶
WithChildren implements the Node interface.
func (*Set) WithExpressions ¶
WithExpressions implements the Expressioner interface.
type SetVariable ¶
type SetVariable struct { Name string Value sql.Expression }
SetVariable is a key-value pair to represent the value that will be set on a variable.
type ShowCollation ¶
type ShowCollation struct{}
ShowCollation shows all available collations.
func NewShowCollation ¶
func NewShowCollation() ShowCollation
NewShowCollation creates a new ShowCollation node.
func (ShowCollation) Children ¶
func (ShowCollation) Children() []sql.Node
Children implements the sql.Node interface.
func (ShowCollation) Resolved ¶
func (ShowCollation) Resolved() bool
Resolved implements the sql.Node interface.
func (ShowCollation) Schema ¶
func (ShowCollation) Schema() sql.Schema
Schema implements the sql.Node interface.
func (ShowCollation) String ¶
func (ShowCollation) String() string
func (ShowCollation) WithChildren ¶
WithChildren implements the Node interface.
type ShowColumns ¶
ShowColumns shows the columns details of a table.
func NewShowColumns ¶
func NewShowColumns(full bool, child sql.Node) *ShowColumns
NewShowColumns creates a new ShowColumns node.
func (*ShowColumns) Schema ¶
func (s *ShowColumns) Schema() sql.Schema
Schema implements the sql.Node interface.
func (*ShowColumns) String ¶
func (s *ShowColumns) String() string
func (*ShowColumns) WithChildren ¶
WithChildren implements the Node interface.
type ShowCreateDatabase ¶
type ShowCreateDatabase struct { IfNotExists bool // contains filtered or unexported fields }
ShowCreateDatabase returns the SQL for creating a database.
func NewShowCreateDatabase ¶
func NewShowCreateDatabase(db sql.Database, ifNotExists bool) *ShowCreateDatabase
NewShowCreateDatabase creates a new ShowCreateDatabase node.
func (*ShowCreateDatabase) Children ¶
func (s *ShowCreateDatabase) Children() []sql.Node
Children implements the sql.Node interface.
func (*ShowCreateDatabase) Database ¶
func (s *ShowCreateDatabase) Database() sql.Database
Database implements the sql.Databaser interface.
func (*ShowCreateDatabase) Resolved ¶
func (s *ShowCreateDatabase) Resolved() bool
Resolved implements the sql.Node interface.
func (*ShowCreateDatabase) Schema ¶
func (s *ShowCreateDatabase) Schema() sql.Schema
Schema implements the sql.Node interface.
func (*ShowCreateDatabase) String ¶
func (s *ShowCreateDatabase) String() string
func (*ShowCreateDatabase) WithChildren ¶
WithChildren implements the Node interface.
func (*ShowCreateDatabase) WithDatabase ¶
WithDatabase implements the sql.Databaser interface.
type ShowCreateTable ¶
ShowCreateTable is a node that shows the CREATE TABLE statement for a table.
func (*ShowCreateTable) Children ¶
func (n *ShowCreateTable) Children() []sql.Node
Children implements the Node interface.
func (*ShowCreateTable) Resolved ¶
func (n *ShowCreateTable) Resolved() bool
Resolved implements the Resolvable interface.
func (*ShowCreateTable) Schema ¶
func (n *ShowCreateTable) Schema() sql.Schema
Schema implements the Node interface.
func (*ShowCreateTable) String ¶
func (n *ShowCreateTable) String() string
String implements the Stringer interface.
func (*ShowCreateTable) WithChildren ¶
WithChildren implements the Node interface.
type ShowDatabases ¶
ShowDatabases is a node that shows the databases.
func NewShowDatabases ¶
func NewShowDatabases() *ShowDatabases
NewShowDatabases creates a new show databases node.
func (*ShowDatabases) Children ¶
func (*ShowDatabases) Children() []sql.Node
Children implements the Node interface.
func (*ShowDatabases) Resolved ¶
func (p *ShowDatabases) Resolved() bool
Resolved implements the Resolvable interface.
func (*ShowDatabases) Schema ¶
func (*ShowDatabases) Schema() sql.Schema
Schema implements the Node interface.
func (ShowDatabases) String ¶
func (p ShowDatabases) String() string
func (*ShowDatabases) WithChildren ¶
WithChildren implements the Node interface.
type ShowIndexes ¶
type ShowIndexes struct { Table string Registry *sql.IndexRegistry // contains filtered or unexported fields }
ShowIndexes is a node that shows the indexes on a table.
func (*ShowIndexes) Children ¶
func (n *ShowIndexes) Children() []sql.Node
Children implements the Node interface.
func (*ShowIndexes) Database ¶
func (n *ShowIndexes) Database() sql.Database
Database implements the sql.Databaser interface.
func (*ShowIndexes) Resolved ¶
func (n *ShowIndexes) Resolved() bool
Resolved implements the Resolvable interface.
func (*ShowIndexes) Schema ¶
func (n *ShowIndexes) Schema() sql.Schema
Schema implements the Node interface.
func (*ShowIndexes) String ¶
func (n *ShowIndexes) String() string
String implements the Stringer interface.
func (*ShowIndexes) WithChildren ¶
WithChildren implements the Node interface.
func (*ShowIndexes) WithDatabase ¶
WithDatabase implements the sql.Databaser interface.
type ShowProcessList ¶
type ShowProcessList struct { Database string *sql.ProcessList }
ShowProcessList shows a list of all current running processes.
func NewShowProcessList ¶
func NewShowProcessList() *ShowProcessList
NewShowProcessList creates a new ProcessList node.
func (*ShowProcessList) Children ¶
func (p *ShowProcessList) Children() []sql.Node
Children implements the Node interface.
func (*ShowProcessList) Resolved ¶
func (p *ShowProcessList) Resolved() bool
Resolved implements the Node interface.
func (*ShowProcessList) Schema ¶
func (p *ShowProcessList) Schema() sql.Schema
Schema implements the Node interface.
func (*ShowProcessList) String ¶
func (p *ShowProcessList) String() string
func (*ShowProcessList) WithChildren ¶
WithChildren implements the Node interface.
type ShowTableStatus ¶
ShowTableStatus returns the status of the tables in the databases.
func NewShowTableStatus ¶
func NewShowTableStatus(dbs ...string) *ShowTableStatus
NewShowTableStatus creates a new ShowTableStatus node.
func (*ShowTableStatus) Children ¶
func (s *ShowTableStatus) Children() []sql.Node
Children implements the sql.Node interface.
func (*ShowTableStatus) Resolved ¶
func (s *ShowTableStatus) Resolved() bool
Resolved implements the sql.Node interface.
func (*ShowTableStatus) Schema ¶
func (s *ShowTableStatus) Schema() sql.Schema
Schema implements the sql.Node interface.
func (*ShowTableStatus) String ¶
func (s *ShowTableStatus) String() string
func (*ShowTableStatus) WithChildren ¶
WithChildren implements the Node interface.
type ShowTables ¶
type ShowTables struct { Full bool // contains filtered or unexported fields }
ShowTables is a node that shows the database tables.
func NewShowTables ¶
func NewShowTables(database sql.Database, full bool) *ShowTables
NewShowTables creates a new show tables node given a database.
func (*ShowTables) Children ¶
func (*ShowTables) Children() []sql.Node
Children implements the Node interface.
func (*ShowTables) Database ¶
func (p *ShowTables) Database() sql.Database
Database implements the sql.Databaser interface.
func (*ShowTables) Resolved ¶
func (p *ShowTables) Resolved() bool
Resolved implements the Resolvable interface.
func (*ShowTables) Schema ¶
func (p *ShowTables) Schema() sql.Schema
Schema implements the Node interface.
func (ShowTables) String ¶
func (p ShowTables) String() string
func (*ShowTables) WithChildren ¶
WithChildren implements the Node interface.
func (*ShowTables) WithDatabase ¶
WithDatabase implements the sql.Databaser interface.
type ShowVariables ¶
type ShowVariables struct {
// contains filtered or unexported fields
}
ShowVariables is a node that shows the global and session variables
func NewShowVariables ¶
func NewShowVariables(config map[string]sql.TypedValue, like string) *ShowVariables
NewShowVariables returns a new ShowVariables reference. config is a variables lookup table like is a "like pattern". If like is an empty string it will return all variables.
func (*ShowVariables) Children ¶
func (*ShowVariables) Children() []sql.Node
Children implements sql.Node interface. The function always returns nil.
func (*ShowVariables) Resolved ¶
func (sv *ShowVariables) Resolved() bool
Resolved implements sql.Node interface. The function always returns true.
func (*ShowVariables) RowIter ¶
RowIter implements the sql.Node interface. The function returns an iterator for filtered variables (based on like pattern)
func (*ShowVariables) Schema ¶
func (*ShowVariables) Schema() sql.Schema
Schema returns a new Schema reference for "SHOW VARIABLES" query.
func (*ShowVariables) String ¶
func (sv *ShowVariables) String() string
String implements the Stringer interface.
func (*ShowVariables) WithChildren ¶
WithChildren implements the Node interface.
type ShowWarnings ¶
ShowWarnings is a node that shows the session warnings
func (ShowWarnings) Children ¶
func (ShowWarnings) Children() []sql.Node
Children implements sql.Node interface. The function always returns nil.
func (ShowWarnings) Resolved ¶
func (ShowWarnings) Resolved() bool
Resolved implements sql.Node interface. The function always returns true.
func (ShowWarnings) RowIter ¶
RowIter implements the sql.Node interface. The function returns an iterator for warnings (considering offset and counter)
func (ShowWarnings) Schema ¶
func (ShowWarnings) Schema() sql.Schema
Schema returns a new Schema reference for "SHOW VARIABLES" query.
func (ShowWarnings) String ¶
func (ShowWarnings) String() string
String implements the Stringer interface.
func (ShowWarnings) WithChildren ¶
WithChildren implements the Node interface.
type Sort ¶
Sort is the sort node.
func (*Sort) Expressions ¶
func (s *Sort) Expressions() []sql.Expression
Expressions implements the Expressioner interface.
func (*Sort) WithChildren ¶
WithChildren implements the Node interface.
func (*Sort) WithExpressions ¶
WithExpressions implements the Expressioner interface.
type SortField ¶
type SortField struct { // Column to order by. Column sql.Expression // Order type. Order SortOrder // NullOrdering defining how nulls will be ordered. NullOrdering NullOrdering }
SortField is a field by which the query will be sorted.
type SortOrder ¶
type SortOrder byte
SortOrder represents the order of the sort (ascending or descending).
type SubqueryAlias ¶
type SubqueryAlias struct { UnaryNode // contains filtered or unexported fields }
SubqueryAlias is a node that gives a subquery a name.
func NewSubqueryAlias ¶
func NewSubqueryAlias(name string, node sql.Node) *SubqueryAlias
NewSubqueryAlias creates a new SubqueryAlias node.
func (*SubqueryAlias) Name ¶
func (n *SubqueryAlias) Name() string
Name implements the Table interface.
func (*SubqueryAlias) Opaque ¶
func (n *SubqueryAlias) Opaque() bool
Opaque implements the OpaqueNode interface.
func (*SubqueryAlias) Schema ¶
func (n *SubqueryAlias) Schema() sql.Schema
Schema implements the Node interface.
func (SubqueryAlias) String ¶
func (n SubqueryAlias) String() string
func (*SubqueryAlias) WithChildren ¶
WithChildren implements the Node interface.
type TableAlias ¶
type TableAlias struct { *UnaryNode // contains filtered or unexported fields }
TableAlias is a node that acts as a table with a given name.
func NewTableAlias ¶
func NewTableAlias(name string, node sql.Node) *TableAlias
NewTableAlias returns a new Table alias node.
func (*TableAlias) Name ¶
func (t *TableAlias) Name() string
Name implements the Nameable interface.
func (TableAlias) String ¶
func (t TableAlias) String() string
func (*TableAlias) WithChildren ¶
WithChildren implements the Node interface.
type UnaryNode ¶
UnaryNode is a node that has only one children.
type UnlockTables ¶
UnlockTables will release all locks for the current session.
func NewUnlockTables ¶
func NewUnlockTables() *UnlockTables
NewUnlockTables returns a new UnlockTables node.
func (*UnlockTables) Children ¶
func (t *UnlockTables) Children() []sql.Node
Children implements the sql.Node interface.
func (*UnlockTables) Resolved ¶
func (t *UnlockTables) Resolved() bool
Resolved implements the sql.Node interface.
func (*UnlockTables) Schema ¶
func (t *UnlockTables) Schema() sql.Schema
Schema implements the sql.Node interface.
func (*UnlockTables) String ¶
func (t *UnlockTables) String() string
func (*UnlockTables) WithChildren ¶
WithChildren implements the Node interface.
type UnresolvedTable ¶
type UnresolvedTable struct { Database string // contains filtered or unexported fields }
UnresolvedTable is a table that has not been resolved yet but whose name is known.
func NewUnresolvedTable ¶
func NewUnresolvedTable(name, db string) *UnresolvedTable
NewUnresolvedTable creates a new Unresolved table.
func (*UnresolvedTable) Children ¶
func (*UnresolvedTable) Children() []sql.Node
Children implements the Node interface.
func (*UnresolvedTable) Name ¶
func (t *UnresolvedTable) Name() string
Name implements the Nameable interface.
func (*UnresolvedTable) Resolved ¶
func (*UnresolvedTable) Resolved() bool
Resolved implements the Resolvable interface.
func (*UnresolvedTable) Schema ¶
func (*UnresolvedTable) Schema() sql.Schema
Schema implements the Node interface.
func (UnresolvedTable) String ¶
func (t UnresolvedTable) String() string
func (*UnresolvedTable) WithChildren ¶
WithChildren implements the Node interface.
type Update ¶
type Update struct { sql.Node UpdateExprs []sql.Expression }
Update is a node for updating rows on tables.
func NewUpdate ¶
func NewUpdate(n sql.Node, updateExprs []sql.Expression) *Update
NewUpdate creates an Update node.
func (*Update) Expressions ¶
func (p *Update) Expressions() []sql.Expression
Expressions implements the Expressioner interface.
func (*Update) WithChildren ¶
WithChildren implements the Node interface.
func (*Update) WithExpressions ¶
WithExpressions implements the Expressioner interface.
type Use ¶
Use changes the current database.
func (*Use) WithChildren ¶
WithChildren implements the Node interface.
type Values ¶
type Values struct {
ExpressionTuples [][]sql.Expression
}
Values represents a set of tuples of expressions.
func NewValues ¶
func NewValues(tuples [][]sql.Expression) *Values
NewValues creates a Values node with the given tuples.
func (*Values) Expressions ¶
func (p *Values) Expressions() []sql.Expression
Expressions implements the Expressioner interface.
func (*Values) WithChildren ¶
WithChildren implements the Node interface.
func (*Values) WithExpressions ¶
WithExpressions implements the Expressioner interface.
type Visitor ¶
type Visitor interface { // Visit method is invoked for each node encountered by Walk. // If the result Visitor is not nul, Walk visits each of the children // of the node with that visitor, followed by a call of Visit(nil) // to the returned visitor. Visit(node sql.Node) Visitor }
Visitor visits nodes in the plan.
Source Files ¶
- common.go
- create_index.go
- cross_join.go
- ddl.go
- delete.go
- describe.go
- distinct.go
- drop_index.go
- empty_table.go
- exchange.go
- filter.go
- generate.go
- group_by.go
- having.go
- insert.go
- join.go
- limit.go
- lock.go
- naturaljoin.go
- nothing.go
- offset.go
- process.go
- processlist.go
- project.go
- resolved_table.go
- set.go
- show_collation.go
- show_create_database.go
- show_create_table.go
- show_indexes.go
- show_tables.go
- showcolumns.go
- showdatabases.go
- showtablestatus.go
- showvariables.go
- showwarnings.go
- sort.go
- subqueryalias.go
- tablealias.go
- transaction.go
- transform.go
- unresolved.go
- update.go
- use.go
- values.go
- walk.go