Package com.mckoi.database
Class QueryPlan.RangeSelectNode
- java.lang.Object
-
- com.mckoi.database.QueryPlan.SingleQueryPlanNode
-
- com.mckoi.database.QueryPlan.RangeSelectNode
-
- All Implemented Interfaces:
QueryPlanNode
,java.io.Serializable
,java.lang.Cloneable
- Enclosing class:
- QueryPlan
public static class QueryPlan.RangeSelectNode extends QueryPlan.SingleQueryPlanNode
The node for performing a simple indexed query on a single column of the child node. Finds the set from the child node that matches the range.The given Expression object must conform to a number of rules. It may reference only one column in the child node. It must consist of only simple mathemetical and logical operators (<, >, =, <>, >=, <=, AND, OR). The left side of each mathematical operator must be a variable, and the right side must be a constant (parameter subsitution or correlated value). For example; (col > 10 AND col < 100) OR col > 1000 OR col == 10
Breaking any of these rules will mean the range select can not happen.
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class com.mckoi.database.QueryPlan.SingleQueryPlanNode
child
-
-
Constructor Summary
Constructors Constructor Description RangeSelectNode(QueryPlanNode child, Expression exp)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
clone()
Deep clone.java.util.ArrayList
discoverCorrelatedVariables(int level, java.util.ArrayList list)
Default implementation that discovers correlated variables for the given offset level.java.util.ArrayList
discoverTableNames(java.util.ArrayList list)
Default implementation delegates responsibility to child.Table
evaluate(QueryContext context)
Evaluates the node and returns the result as a Table.java.lang.String
titleString()
-
Methods inherited from class com.mckoi.database.QueryPlan.SingleQueryPlanNode
child, debugString
-
-
-
-
Constructor Detail
-
RangeSelectNode
public RangeSelectNode(QueryPlanNode child, Expression exp)
-
-
Method Detail
-
evaluate
public Table evaluate(QueryContext context)
Description copied from interface:QueryPlanNode
Evaluates the node and returns the result as a Table. The VariableResolver resolves any outer variables
-
discoverTableNames
public java.util.ArrayList discoverTableNames(java.util.ArrayList list)
Description copied from class:QueryPlan.SingleQueryPlanNode
Default implementation delegates responsibility to child.- Specified by:
discoverTableNames
in interfaceQueryPlanNode
- Overrides:
discoverTableNames
in classQueryPlan.SingleQueryPlanNode
-
discoverCorrelatedVariables
public java.util.ArrayList discoverCorrelatedVariables(int level, java.util.ArrayList list)
Description copied from class:QueryPlan.SingleQueryPlanNode
Default implementation that discovers correlated variables for the given offset level.- Specified by:
discoverCorrelatedVariables
in interfaceQueryPlanNode
- Overrides:
discoverCorrelatedVariables
in classQueryPlan.SingleQueryPlanNode
-
clone
public java.lang.Object clone() throws java.lang.CloneNotSupportedException
Description copied from class:QueryPlan.SingleQueryPlanNode
Deep clone.- Specified by:
clone
in interfaceQueryPlanNode
- Overrides:
clone
in classQueryPlan.SingleQueryPlanNode
- Throws:
java.lang.CloneNotSupportedException
-
titleString
public java.lang.String titleString()
- Overrides:
titleString
in classQueryPlan.SingleQueryPlanNode
-
-