casacore::TaQLNodeHandler Class Reference

Class to handle the nodes in the raw TaQL parse tree. More...

#include <TaQLNodeHandler.h>

Inheritance diagram for casacore::TaQLNodeHandler:
casacore::TaQLNodeVisitor

List of all members.

Public Member Functions

virtual ~TaQLNodeHandler ()
TaQLNodeResult handleTree (const TaQLNode &tree, const std::vector< const Table * > &)
 Handle and process the raw parse tree.
virtual TaQLNodeResult visitConstNode (const TaQLConstNodeRep &node)
 Define the functions to visit each node type.
virtual TaQLNodeResult visitRegexNode (const TaQLRegexNodeRep &node)
virtual TaQLNodeResult visitUnaryNode (const TaQLUnaryNodeRep &node)
virtual TaQLNodeResult visitBinaryNode (const TaQLBinaryNodeRep &node)
virtual TaQLNodeResult visitMultiNode (const TaQLMultiNodeRep &node)
virtual TaQLNodeResult visitFuncNode (const TaQLFuncNodeRep &node)
virtual TaQLNodeResult visitRangeNode (const TaQLRangeNodeRep &node)
virtual TaQLNodeResult visitIndexNode (const TaQLIndexNodeRep &node)
virtual TaQLNodeResult visitKeyColNode (const TaQLKeyColNodeRep &node)
virtual TaQLNodeResult visitTableNode (const TaQLTableNodeRep &node)
virtual TaQLNodeResult visitColNode (const TaQLColNodeRep &node)
virtual TaQLNodeResult visitColumnsNode (const TaQLColumnsNodeRep &node)
virtual TaQLNodeResult visitJoinNode (const TaQLJoinNodeRep &node)
virtual TaQLNodeResult visitGroupNode (const TaQLGroupNodeRep &node)
virtual TaQLNodeResult visitSortKeyNode (const TaQLSortKeyNodeRep &node)
virtual TaQLNodeResult visitSortNode (const TaQLSortNodeRep &node)
virtual TaQLNodeResult visitLimitOffNode (const TaQLLimitOffNodeRep &node)
virtual TaQLNodeResult visitGivingNode (const TaQLGivingNodeRep &node)
virtual TaQLNodeResult visitUpdExprNode (const TaQLUpdExprNodeRep &node)
virtual TaQLNodeResult visitSelectNode (const TaQLSelectNodeRep &node)
virtual TaQLNodeResult visitUpdateNode (const TaQLUpdateNodeRep &node)
virtual TaQLNodeResult visitInsertNode (const TaQLInsertNodeRep &node)
virtual TaQLNodeResult visitDeleteNode (const TaQLDeleteNodeRep &node)
virtual TaQLNodeResult visitCountNode (const TaQLCountNodeRep &node)
virtual TaQLNodeResult visitCalcNode (const TaQLCalcNodeRep &node)
virtual TaQLNodeResult visitCreTabNode (const TaQLCreTabNodeRep &node)
virtual TaQLNodeResult visitColSpecNode (const TaQLColSpecNodeRep &node)
virtual TaQLNodeResult visitRecFldNode (const TaQLRecFldNodeRep &node)
virtual TaQLNodeResult visitUnitNode (const TaQLUnitNodeRep &node)
virtual TaQLNodeResult visitAltTabNode (const TaQLAltTabNodeRep &node)
virtual TaQLNodeResult visitAddColNode (const TaQLAddColNodeRep &node)
virtual TaQLNodeResult visitSetKeyNode (const TaQLSetKeyNodeRep &node)
virtual TaQLNodeResult visitRenDropNode (const TaQLRenDropNodeRep &node)
virtual TaQLNodeResult visitAddRowNode (const TaQLAddRowNodeRep &node)
virtual TaQLNodeResult visitConcTabNode (const TaQLConcTabNodeRep &node)
virtual TaQLNodeResult visitShowNode (const TaQLShowNodeRep &node)

Static Public Member Functions

static const TaQLNodeHRValuegetHR (const TaQLNodeResult &)
 Get the actual result object from the result.

Private Member Functions

TableParseSelectpushStack (TableParseSelect::CommandType)
 Push a new TableParseSelect on the stack.
TableParseSelecttopStack () const
 Get the top of the TableParseSelect stack.
void popStack ()
 Pop the top from the TableParseSelect stack.
void clearStack ()
 Clear the select stack.
TaQLNodeResult handleSelect (const TaQLSelectNodeRep &node, Bool doExec)
 Handle the select command.
void handleTables (const TaQLMultiNode &)
 Handle a MultiNode containing table info.
Table makeConcatTable (const TaQLMultiNodeRep &node)
 Make a ConcatTable from a nested set of tables.
void handleWhere (const TaQLNode &)
 Handle the WHERE clause.
void handleHaving (const TaQLNode &)
 Handle the HAVING clause.
void handleUpdate (const TaQLMultiNode &)
 Handle the UPDATE SET clause.
void handleInsCol (const TaQLMultiNode &)
 Handle the INSERT columns.
void handleInsVal (const TaQLNode &)
 Handle the INSERT values.
void handleColSpecs (const TaQLMultiNode &)
 Handle a column specification in a create table.
Record handleMultiRecFld (const TaQLNode &node)
 Handle a Multi RecFld representing a Record.

Private Attributes

std::vector< TableParseSelect * > itsStack
std::vector< const Table * > itsTempTables

Detailed Description

Class to handle the nodes in the raw TaQL parse tree.

Intended use:

Internal

Review Status

Test programs:
tTableGram

Prerequisite

Synopsis

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.

Motivation

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.


Constructor & Destructor Documentation

virtual casacore::TaQLNodeHandler::~TaQLNodeHandler (  )  [virtual]

Member Function Documentation

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.

Record casacore::TaQLNodeHandler::handleMultiRecFld ( const TaQLNode node  )  [private]

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]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitAddRowNode ( const TaQLAddRowNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitAltTabNode ( const TaQLAltTabNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitBinaryNode ( const TaQLBinaryNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitCalcNode ( const TaQLCalcNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitColNode ( const TaQLColNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitColSpecNode ( const TaQLColSpecNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitColumnsNode ( const TaQLColumnsNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitConcTabNode ( const TaQLConcTabNodeRep node  )  [virtual]
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]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitCreTabNode ( const TaQLCreTabNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitDeleteNode ( const TaQLDeleteNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitFuncNode ( const TaQLFuncNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitGivingNode ( const TaQLGivingNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitGroupNode ( const TaQLGroupNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitIndexNode ( const TaQLIndexNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitInsertNode ( const TaQLInsertNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitJoinNode ( const TaQLJoinNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitKeyColNode ( const TaQLKeyColNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitLimitOffNode ( const TaQLLimitOffNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitMultiNode ( const TaQLMultiNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitRangeNode ( const TaQLRangeNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitRecFldNode ( const TaQLRecFldNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitRegexNode ( const TaQLRegexNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitRenDropNode ( const TaQLRenDropNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitSelectNode ( const TaQLSelectNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitSetKeyNode ( const TaQLSetKeyNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitShowNode ( const TaQLShowNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitSortKeyNode ( const TaQLSortKeyNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitSortNode ( const TaQLSortNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitTableNode ( const TaQLTableNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitUnaryNode ( const TaQLUnaryNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitUnitNode ( const TaQLUnitNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitUpdateNode ( const TaQLUpdateNodeRep node  )  [virtual]
virtual TaQLNodeResult casacore::TaQLNodeHandler::visitUpdExprNode ( const TaQLUpdExprNodeRep node  )  [virtual]

Member Data Documentation

Definition at line 195 of file TaQLNodeHandler.h.

std::vector<const Table*> casacore::TaQLNodeHandler::itsTempTables [private]

Definition at line 197 of file TaQLNodeHandler.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1