com.mckoi.database
Class QueryPlan.RangeSelectNode

java.lang.Object
  extended by com.mckoi.database.QueryPlan.SingleQueryPlanNode
      extended by 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
QueryPlan.RangeSelectNode(QueryPlanNode child, Expression exp)
           
 
Method Summary
 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
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

QueryPlan.RangeSelectNode

public QueryPlan.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 interface QueryPlanNode
Overrides:
discoverTableNames in class QueryPlan.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 interface QueryPlanNode
Overrides:
discoverCorrelatedVariables in class QueryPlan.SingleQueryPlanNode

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Description copied from class: QueryPlan.SingleQueryPlanNode
Deep clone.

Specified by:
clone in interface QueryPlanNode
Overrides:
clone in class QueryPlan.SingleQueryPlanNode
Throws:
java.lang.CloneNotSupportedException

titleString

public java.lang.String titleString()
Overrides:
titleString in class QueryPlan.SingleQueryPlanNode