A class to represent simple range conditions. More...
#include <qExpr.h>
Public Member Functions | |
virtual const char * | colName () const =0 |
Returns the name of the attribute involved. | |
virtual bool | empty () const =0 |
Is the current range empty? | |
virtual void | getTableNames (std::set< std::string > &plist) const |
Identify the data partitions involved in the query expression. | |
virtual bool | inRange (double val) const =0 |
Given a value, determine whether it is in the range defined. | |
virtual double | leftBound () const =0 |
The lower bound of the range. | |
virtual void | restrictRange (double left, double right)=0 |
Reduce the range to be no more than [left, right]. | |
virtual double | rightBound () const =0 |
The upper bound of the range. | |
Protected Member Functions | |
qRange (TYPE t) |
A class to represent simple range conditions.
This is an abstract base class for qContinuousRange and qDiscreteRange. The main virtual functions, colName and inRange are used by procedures that evaluate the conditions.
void ibis::qRange::getTableNames | ( | std::set< std::string > & | plist | ) | const [virtual] |
Identify the data partitions involved in the query expression.
Return the list of data partition names in a set.
It records a '*' for the variables without explicit partition names.
Reimplemented from ibis::qExpr.
References ibis::qExpr::extractTableName().
virtual bool ibis::qRange::inRange | ( | double | val | ) | const [pure virtual] |
Given a value, determine whether it is in the range defined.
Return true if it is, return false, otherwise.
Implemented in ibis::qUIntHod, ibis::qIntHod, ibis::qDiscreteRange, and ibis::qContinuousRange.
Referenced by ibis::part::doCompare(), ibis::part::doCount(), and ibis::part::doScan().
![]() |