Package com.mckoi.database
Class QueryPlan.JoinNode
java.lang.Object
com.mckoi.database.QueryPlan.BranchQueryPlanNode
com.mckoi.database.QueryPlan.JoinNode
- All Implemented Interfaces:
QueryPlanNode
,Serializable
,Cloneable
- Enclosing class:
- QueryPlan
A branch node for a non-equi join between two tables.
NOTE: The cost of a LeftJoin is higher if the right child result is greater than the left child result. The plan should be arranged so smaller results are on the left.
- See Also:
-
Field Summary
Fields inherited from class com.mckoi.database.QueryPlan.BranchQueryPlanNode
left, right
-
Constructor Summary
ConstructorsConstructorDescriptionJoinNode
(QueryPlanNode left, QueryPlanNode right, Variable left_var, Operator join_op, Expression right_expression) -
Method Summary
Modifier and TypeMethodDescriptionclone()
Deep clone.discoverCorrelatedVariables
(int level, ArrayList list) Default implementation that discovers correlated variables for the given offset level.discoverTableNames
(ArrayList list) Default implementation delegates responsibility to children.evaluate
(QueryContext context) Evaluates the node and returns the result as a Table.Methods inherited from class com.mckoi.database.QueryPlan.BranchQueryPlanNode
debugString, left, right
-
Constructor Details
-
JoinNode
public JoinNode(QueryPlanNode left, QueryPlanNode right, Variable left_var, Operator join_op, Expression right_expression)
-
-
Method Details
-
evaluate
Description copied from interface:QueryPlanNode
Evaluates the node and returns the result as a Table. The VariableResolver resolves any outer variables -
discoverTableNames
Description copied from class:QueryPlan.BranchQueryPlanNode
Default implementation delegates responsibility to children.- Specified by:
discoverTableNames
in interfaceQueryPlanNode
- Overrides:
discoverTableNames
in classQueryPlan.BranchQueryPlanNode
-
clone
Description copied from class:QueryPlan.BranchQueryPlanNode
Deep clone.- Specified by:
clone
in interfaceQueryPlanNode
- Overrides:
clone
in classQueryPlan.BranchQueryPlanNode
- Throws:
CloneNotSupportedException
-
titleString
- Overrides:
titleString
in classQueryPlan.BranchQueryPlanNode
-