8 #ifndef IBIS_WHERECLAUSE_H
9 #define IBIS_WHERECLAUSE_H
171 int parse(
const char *cl);
175 std::ostringstream oss;
194 void clear() throw ();
203 return clause_.c_str();
229 clause_.swap(rhs.clause_);
250 friend class ibis::whereParser;
whereClause & operator=(const whereClause &)
Assignment operator.
Definition: whereClause.cpp:25
ibis::qExpr * operator->()
Member access operator redefined to point to ibis::qExpr.
Definition: whereClause.h:221
A representation of the where clause.
Definition: whereClause.h:161
Simple range condition.
Definition: qExpr.h:252
const ibis::qExpr * operator->() const
Member access operator redefined to point to const ibis::qExpr.
Definition: whereClause.h:223
static int removeAlias(ibis::qContinuousRange *&, const ibis::column *)
Create a simple range expression as the replacement of the incoming oldr.
Definition: whereClause.cpp:860
The top level query expression object.
Definition: qExpr.h:36
A class to represent the select clause.
Definition: selectClause.h:112
const char * getString(void) const
Return a pointer to the string form of the where clause.
Definition: whereClause.h:199
void addConditions(const char *)
Append a set of conditions to the existing where clause.
Definition: whereClause.cpp:76
The current implementation of FastBit is code named IBIS; most data structures and functions are in t...
Definition: bord.h:16
The class to represent a column of a data partition.
Definition: column.h:65
void addExpr(const ibis::qExpr *)
Append a set of conditions to the existing where clause.
Definition: whereClause.cpp:105
void simplify()
Simplify the query expression.
Definition: whereClause.h:216
void swap(whereClause &rhs)
Swap the contents of two where clauses.
Definition: whereClause.h:228
Define the query expression.
Defines a new class with the desired lex function for C++ output of bison.
Definition: whereLexer.h:41
virtual qExpr * dup() const
!< Reorder the expressions tree.
Definition: qExpr.h:128
bool empty() const
The where clause is considered empty if the expr_ is a nil pointer.
Definition: whereClause.h:196
The class ibis::part represents a partition of a relational table.
Definition: part.h:27
void setExpr(const ibis::qExpr *ex)
Assign a new set of conditions directly.
Definition: whereClause.h:185
ibis::qExpr * expr_
!< String version of the where clause.
Definition: whereClause.h:243
A data structure to represent a sequence of bits.
Definition: bitvector.h:62
virtual void print(std::ostream &) const
Print out the node in the string form.
Definition: qExpr.cpp:910
int parse(const char *cl)
Parse a new string.
Definition: whereClause.cpp:31
ibis::qExpr * getExpr(void)
Return a pointer to the root of the expression tree for the where clause.
Definition: whereClause.h:214
int verify(const ibis::part &p0, const ibis::selectClause *sel=0) const
Verify that the names exist in the data partition.
Definition: whereClause.cpp:245
void resetString()
Regenerate the string version of the query conditions.
Definition: whereClause.h:173
static void simplify(ibis::qExpr *&)
Attempt to simplify the query expressions.
Definition: qExpr.cpp:51
void clear()
Clear the existing content.
Definition: whereClause.cpp:119
void amplify(const ibis::part &)
!< The expression tree.
Definition: whereClause.cpp:128
const ibis::qExpr * getExpr(void) const
Return a pointer to the root of the expression tree for the where clause.
Definition: whereClause.h:209
~whereClause()
Destructor.
Definition: whereClause.cpp:11
whereClause(const char *cl=0)
Construct a where clause from a string.
Definition: whereClause.cpp:15