Class to handle the nodes in the raw TaQL parse tree. More...
#include <TaQLNodeHandler.h>
Class to handle the nodes in the raw TaQL parse tree.
Internal
TaQLNodeHandler is a specialization of class TaQLNodeVisitor . It processes the raw TaQL parse tree generated by TableGram. The processing is done in a recursive way. It starts at the top (which is a SELECT, UPDATE, etc. expression) and the processing results of a query are stored in a TableParseSelect object. These objects are kept in a stack for possible nested queries. After a query is fully processed, it is executed. Usually the result is a table; only a CALC command gives a TableExprNode as result.
Separating the raw query parsing from the query processing has several advantages compared to the old situation where parsing and processing were combined.
Definition at line 95 of file TaQLNodeHandler.h.
virtual casacore::TaQLNodeHandler::~TaQLNodeHandler | ( | ) | [virtual] |
void casacore::TaQLNodeHandler::clearStack | ( | ) | [private] |
Clear the select stack.
const TaQLNodeHRValue & casacore::TaQLNodeHandler::getHR | ( | const TaQLNodeResult & | res | ) | [inline, static] |
Get the actual result object from the result.
Definition at line 315 of file TaQLNodeHandler.h.
References casacore::TaQLNodeResult::getRep().
void casacore::TaQLNodeHandler::handleColSpecs | ( | const TaQLMultiNode & | ) | [private] |
Handle a column specification in a create table.
void casacore::TaQLNodeHandler::handleHaving | ( | const TaQLNode & | ) | [private] |
Handle the HAVING clause.
void casacore::TaQLNodeHandler::handleInsCol | ( | const TaQLMultiNode & | ) | [private] |
Handle the INSERT columns.
void casacore::TaQLNodeHandler::handleInsVal | ( | const TaQLNode & | ) | [private] |
Handle the INSERT values.
Handle a Multi RecFld representing a Record.
TaQLNodeResult casacore::TaQLNodeHandler::handleSelect | ( | const TaQLSelectNodeRep & | node, | |
Bool | doExec | |||
) | [private] |
Handle the select command.
Optionally the command is not executed (needed for the EXISTS operator).
void casacore::TaQLNodeHandler::handleTables | ( | const TaQLMultiNode & | ) | [private] |
Handle a MultiNode containing table info.
TaQLNodeResult casacore::TaQLNodeHandler::handleTree | ( | const TaQLNode & | tree, | |
const std::vector< const Table * > & | ||||
) |
Handle and process the raw parse tree.
The result contains a Table or TableExprNode object.
void casacore::TaQLNodeHandler::handleUpdate | ( | const TaQLMultiNode & | ) | [private] |
Handle the UPDATE SET clause.
void casacore::TaQLNodeHandler::handleWhere | ( | const TaQLNode & | ) | [private] |
Handle the WHERE clause.
Table casacore::TaQLNodeHandler::makeConcatTable | ( | const TaQLMultiNodeRep & | node | ) | [private] |
Make a ConcatTable from a nested set of tables.
void casacore::TaQLNodeHandler::popStack | ( | ) | [private] |
Pop the top from the TableParseSelect stack.
TableParseSelect* casacore::TaQLNodeHandler::pushStack | ( | TableParseSelect::CommandType | ) | [private] |
Push a new TableParseSelect on the stack.
TableParseSelect* casacore::TaQLNodeHandler::topStack | ( | ) | const [private] |
Get the top of the TableParseSelect stack.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitAddColNode | ( | const TaQLAddColNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitAddRowNode | ( | const TaQLAddRowNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitAltTabNode | ( | const TaQLAltTabNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitBinaryNode | ( | const TaQLBinaryNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitCalcNode | ( | const TaQLCalcNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitColNode | ( | const TaQLColNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitColSpecNode | ( | const TaQLColSpecNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitColumnsNode | ( | const TaQLColumnsNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitConcTabNode | ( | const TaQLConcTabNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitConstNode | ( | const TaQLConstNodeRep & | node | ) | [virtual] |
Define the functions to visit each node type.
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitCountNode | ( | const TaQLCountNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitCreTabNode | ( | const TaQLCreTabNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitDeleteNode | ( | const TaQLDeleteNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitFuncNode | ( | const TaQLFuncNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitGivingNode | ( | const TaQLGivingNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitGroupNode | ( | const TaQLGroupNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitIndexNode | ( | const TaQLIndexNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitInsertNode | ( | const TaQLInsertNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitJoinNode | ( | const TaQLJoinNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitKeyColNode | ( | const TaQLKeyColNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitLimitOffNode | ( | const TaQLLimitOffNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitMultiNode | ( | const TaQLMultiNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitRangeNode | ( | const TaQLRangeNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitRecFldNode | ( | const TaQLRecFldNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitRegexNode | ( | const TaQLRegexNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitRenDropNode | ( | const TaQLRenDropNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitSelectNode | ( | const TaQLSelectNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitSetKeyNode | ( | const TaQLSetKeyNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitShowNode | ( | const TaQLShowNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitSortKeyNode | ( | const TaQLSortKeyNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitSortNode | ( | const TaQLSortNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitTableNode | ( | const TaQLTableNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitUnaryNode | ( | const TaQLUnaryNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitUnitNode | ( | const TaQLUnitNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitUpdateNode | ( | const TaQLUpdateNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitUpdExprNode | ( | const TaQLUpdExprNodeRep & | node | ) | [virtual] |
Implements casacore::TaQLNodeVisitor.
std::vector<TableParseSelect*> casacore::TaQLNodeHandler::itsStack [private] |
Definition at line 195 of file TaQLNodeHandler.h.
std::vector<const Table*> casacore::TaQLNodeHandler::itsTempTables [private] |
Definition at line 197 of file TaQLNodeHandler.h.