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.