Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConflictRule ¶
type ConflictRule struct {
// contains filtered or unexported fields
}
func NewConflictRule ¶
func NewConflictRule(antecedent, consequent uint) ConflictRule
func (ConflictRule) Applies ¶
func (r ConflictRule) Applies(s1, s2 uint) bool
type ConflictRuleSet ¶
type ConflictRuleSet interface {
Applicable(op JoinDescriptor, s1, s2 uint) bool
}
func NewConflictRuleSet ¶
func NewConflictRuleSet(ds DescriptorSet) ConflictRuleSet
type DescriptorSet ¶
type DescriptorSet interface {
NumRelations() int
Relation(mask uint) plan.LogicalNode
ForEachDescriptor(f func(JoinDescriptor))
}
func NewDescriptorSet ¶
func NewDescriptorSet(node JoinNode) DescriptorSet
type DescriptorSetBuilder ¶
type DescriptorSetBuilder interface {
AddRelation(relation plan.LogicalNode) uint
AddNode(node JoinDescriptor) uint
MaskReferencedTables(condition impls.Expression) uint
}
type JoinDescriptor ¶
type JoinDescriptor struct {
// contains filtered or unexported fields
}
func (JoinDescriptor) Applicable ¶
func (n JoinDescriptor) Applicable(s1, s2 uint) bool
func (JoinDescriptor) IsAssociative ¶
func (op1 JoinDescriptor) IsAssociative(op2 JoinDescriptor) bool
func (JoinDescriptor) IsCommutative ¶
func (op JoinDescriptor) IsCommutative() bool
func (JoinDescriptor) IsLeftAsscom ¶
func (op1 JoinDescriptor) IsLeftAsscom(op2 JoinDescriptor) bool
func (JoinDescriptor) IsRightAsscom ¶
func (op1 JoinDescriptor) IsRightAsscom(op2 JoinDescriptor) bool
type JoinNode ¶
type JoinNode interface {
fmt.Stringer
ConvertRightJoinsToLeftJoins() JoinNode
BuildDescriptor(b DescriptorSetBuilder) uint
plan.LogicalNode
}
func EnumerateValidJoinTrees ¶
func NewJoinInternalNode ¶
func NewJoinInternalNode(left, right JoinNode, operator JoinOperator) JoinNode
func NewJoinLeafNode ¶
func NewJoinLeafNode(relation plan.LogicalNode) JoinNode
type JoinOperator ¶
type JoinOperator struct {
JoinType join.JoinType
Condition impls.Expression
}
type ProposedJoin ¶
type ProposedJoin interface {
Reconstruct(ds DescriptorSet, vaild map[uint][]ProposedJoin) []JoinNode
}
Click to show internal directories.
Click to hide internal directories.