AECloneValidator Class Reference

A class that validate and update if necessary a clone AE tree. More...

Inherits Simba::SQLEngine::AENodeVisitor.

List of all members.

Public Member Functions

 AECloneValidator ()
 Constructor.
void Validate (AENode *io_node)
 Validate the clone AE tree. Update column references if necessary.
virtual ~AECloneValidator ()
 Destructor.

Protected Types

typedef std::map< const
AERelationalExpr
*, AERelationalExpr * > 
CloneMap

Protected Member Functions

void CacheClone (AERelationalExpr *in_node)
 Cache a pair of Origin and cloned object.
void ValidateBinaryValueExpr (AEBinaryValueExpr *in_node)
 Validate the binary value expression node.
void ValidateUnaryValueExpr (AEUnaryValueExpr *in_node)
 Validate the binary value expression node.
virtual void VisitAdd (AEAdd *in_node)
 The visiting method for an AEAdd value expression node.
virtual void VisitAggregate (AEAggregate *in_node)
 The visiting method for an AEAggregate node.
virtual void VisitAggrFunction (AEAggrFunction *in_node)
 The visiting method for an AEAggrFunction value expression node.
virtual void VisitAnd (AEAnd *in_node)
 The visiting method for an AEAnd boolean expression node.
virtual void VisitBooleanTrue (AEBooleanTrue *in_node)
 The visiting method for an AEBooleanTrue boolean expression node.
virtual void VisitColumn (AEColumn *in_node)
 The visiting method for an AEColumn value expression node.
virtual void VisitComparison (AEComparison *in_node)
 The visiting method for an AEComparison boolean expression node.
virtual void VisitCountStarAggrFunction (AECountStarAggrFunction *in_node)
 The visiting method for an AECountStarAggrFunction value expression node.
virtual void VisitCreateTableAsSelect (AECreateTableAsSelect *in_node)
 The visiting method for an AECreateTableAsSelect node.
virtual void VisitCrossJoin (AECrossJoin *in_node)
 The visiting method for an AECrossJoin node.
virtual void VisitCustomAggregateFn (AECustomAggregateFn *in_node)
 The visiting method for an AECustomAggregateFn expression node.
virtual void VisitCustomScalarFn (AECustomScalarFn *in_node)
 The visiting method for an AECustomScalarFn expression node.
virtual void VisitDefault (AEDefault *in_node)
 The visiting method for an AEDefault value expression node.
virtual void VisitDistinct (AEDistinct *in_node)
 The visiting method for an AEDistinct node.
virtual void VisitDivide (AEDivide *in_node)
 The visiting method for an AEDivide value expression node.
virtual void VisitDummyTable (AEDummyTable *in_node)
 The visiting method for an AEDummyTable node.
virtual void VisitExcept (AEExcept *in_node)
 The visiting method for an AEExcept node.
virtual void VisitExistsPredicate (AEExistsPredicate *in_node)
 The visiting method for an AEExistsPredicate boolean expression node.
virtual void VisitInPredicate (AEInPredicate *in_node)
 The visiting method for an AEInPredicate boolean expression node.
virtual void VisitInsert (AEInsert *in_node)
 The visiting method for an AEInsert statement node.
virtual void VisitInsertionTable (AEInsertionTable *in_node)
 The visiting method for an AEInsertionTable node.
virtual void VisitIntersect (AEIntersect *in_node)
 The visiting method for an AEIntersect node.
virtual void VisitIntervalLiteral (AEIntervalLiteral *in_node)
 The visiting method for an AEIntervalLiteral value expression node.
virtual void VisitJoin (AEJoin *in_node)
 The visiting method for an AEJoin node.
virtual void VisitLikePredicate (AELikePredicate *in_node)
 The visiting method for an AELikePredicate boolean expression node.
virtual void VisitLiteral (AELiteral *in_node)
 The visiting method for an AELiteral value expression node.
virtual void VisitMultiply (AEMultiply *in_node)
 The visiting method for an AEMultiply value expression node.
virtual void VisitNegate (AENegate *in_node)
 The visiting method for an AENegate value expression node.
virtual void VisitNot (AENot *in_node)
 The visiting method for an AENot boolean expression node.
virtual void VisitNull (AENull *in_node)
 The visiting method for an AENull value expression node.
virtual void VisitNullPredicate (AENullPredicate *in_node)
 The visiting method for an AENullPredicate boolean expression node.
virtual void VisitOr (AEOr *in_node)
 The visiting method for an AEOr boolean expression node.
virtual void VisitParameter (AEParameter *in_node)
 The visiting method for an AEParameter value expression node.
virtual void VisitProcedure (AEProcedure *in_node)
 The visiting method for an AEProcedure node.
virtual void VisitProcedureCall (AEProcedureCall *in_node)
 The visiting method for an AEProcedureCall value expression node.
virtual void VisitProject (AEProject *in_node)
 The visiting method for an AEProject node.
virtual void VisitProxyColumn (AEProxyColumn *in_node)
 The visiting method for an AEProxyColumn value expression node.
virtual void VisitQuantifiedComparison (AEQuantifiedComparison *in_node)
 The visiting method for an AEQuantifiedComparison boolean expression node.
virtual void VisitQuery (AEQuery *in_node)
 The visiting method for an AEQuery node.
virtual void VisitRename (AERename *in_node)
 The visiting method for an AERename node.
virtual void VisitScalarFn (AEScalarFn *in_node)
 The visiting method for an AEScalarFn expression node.
virtual void VisitSearchedCase (AESearchedCase *in_node)
 The visiting method for an AESearchedCase value expression node.
virtual void VisitSearchedDelete (AESearchedDelete *in_node)
 The visiting method for an AESearchedDelete statement node.
virtual void VisitSearchedUpdate (AESearchedUpdate *in_node)
 The visiting method for an AESearchedUpdate statement node.
virtual void VisitSearchedWhenClause (AESearchedWhenClause *in_node)
 The visiting method for an AESearchedWhenClause value expression node.
virtual void VisitSelect (AESelect *in_node)
 The visiting method for an AESelect node.
virtual void VisitSetClause (AESetClause *in_node)
 The visiting method for an AESetClause statement node.
virtual void VisitSetClauseList (AESetClauseList *in_node)
 The visiting method for an AESetClauseList statement node.
virtual void VisitSimpleCase (AESimpleCase *in_node)
 The visiting method for an AESimpleCase value expression node.
virtual void VisitSimpleWhenClause (AESimpleWhenClause *in_node)
 The visiting method for an AESimpleWhenClause value expression node.
virtual void VisitSort (AESort *in_node)
 The visiting method for an AESort node.
virtual void VisitSubQuery (AESubQuery *in_node)
 The visiting method for an AESubQuery node.
virtual void VisitSubtract (AESubtract *in_node)
 The visiting method for an AESubtract value expression node.
virtual void VisitTable (AETable *in_node)
 The visiting method for an AETable node.
virtual void VisitTableConstructor (AETableConstructor *in_node)
 The visiting method for an AETableConstructor node.
virtual void VisitTop (AETop *in_node)
 The visiting method for an AETop node.
virtual void VisitTopNSort (AETopNSort *in_node)
 The visiting method for an AETopNSort node.
virtual void VisitUnion (AEUnion *in_node)
 The visiting method for an AEUnion node.
virtual void VisitValueList (AEValueList *in_node)
 The visiting method for an AEValueList node.
virtual void VisitValueSubQuery (AEValueSubQuery *in_node)
 The visiting method for an AEValueSubQuery value expression node.

Protected Attributes

CloneMap m_cloneMap
 Maps all AERelationalExpr nodes from the origin to the clone. This allows all column references (AEColumn and AEProxyColumn) to be validated. (NOT OWN).

Detailed Description

A class that validate and update if necessary a clone AE tree.


Member Typedef Documentation

typedef std::map<const AERelationalExpr*, AERelationalExpr*> CloneMap [protected]

Constructor & Destructor Documentation

Constructor.

virtual ~AECloneValidator (  )  [virtual]

Destructor.


Member Function Documentation

void CacheClone ( AERelationalExpr in_node  )  [protected]

Cache a pair of Origin and cloned object.

Exceptions:
SEInvalidArgumentException if the given node is not cloned.
Parameters:
in_node Reference to the cloned relational expression. Cannot be NULL. (NOT OWN).
void Validate ( AENode io_node  ) 

Validate the clone AE tree. Update column references if necessary.

Exceptions:
SEInvalidArgumentException if any node of the AE tree is not cloned.
Parameters:
io_node Input AE tree node. Cannot be NULL. (NOT OWN)
void ValidateBinaryValueExpr ( AEBinaryValueExpr in_node  )  [protected]

Validate the binary value expression node.

Exceptions:
SEInvalidArgumentException if any node of the AE tree is not cloned.
void ValidateUnaryValueExpr ( AEUnaryValueExpr in_node  )  [protected]

Validate the binary value expression node.

Exceptions:
SEInvalidArgumentException if any node of the AE tree is not cloned.
virtual void VisitAdd ( AEAdd in_node  )  [protected, virtual]

The visiting method for an AEAdd value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitAggregate ( AEAggregate in_node  )  [protected, virtual]

The visiting method for an AEAggregate node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitAggrFunction ( AEAggrFunction in_node  )  [protected, virtual]

The visiting method for an AEAggrFunction value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitAnd ( AEAnd in_node  )  [protected, virtual]

The visiting method for an AEAnd boolean expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitBooleanTrue ( AEBooleanTrue in_node  )  [protected, virtual]

The visiting method for an AEBooleanTrue boolean expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitColumn ( AEColumn in_node  )  [protected, virtual]

The visiting method for an AEColumn value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitComparison ( AEComparison in_node  )  [protected, virtual]

The visiting method for an AEComparison boolean expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitCountStarAggrFunction ( AECountStarAggrFunction in_node  )  [protected, virtual]

The visiting method for an AECountStarAggrFunction value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitCreateTableAsSelect ( AECreateTableAsSelect in_node  )  [protected, virtual]

The visiting method for an AECreateTableAsSelect node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitCrossJoin ( AECrossJoin in_node  )  [protected, virtual]

The visiting method for an AECrossJoin node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitCustomAggregateFn ( AECustomAggregateFn in_node  )  [protected, virtual]

The visiting method for an AECustomAggregateFn expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitCustomScalarFn ( AECustomScalarFn in_node  )  [protected, virtual]

The visiting method for an AECustomScalarFn expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitDefault ( AEDefault in_node  )  [protected, virtual]

The visiting method for an AEDefault value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitDistinct ( AEDistinct in_node  )  [protected, virtual]

The visiting method for an AEDistinct node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitDivide ( AEDivide in_node  )  [protected, virtual]

The visiting method for an AEDivide value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitDummyTable ( AEDummyTable in_node  )  [protected, virtual]

The visiting method for an AEDummyTable node.

This default implementation calls the protected method DefaultVisit().

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitExcept ( AEExcept in_node  )  [protected, virtual]

The visiting method for an AEExcept node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitExistsPredicate ( AEExistsPredicate in_node  )  [protected, virtual]

The visiting method for an AEExistsPredicate boolean expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitInPredicate ( AEInPredicate in_node  )  [protected, virtual]

The visiting method for an AEInPredicate boolean expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitInsert ( AEInsert in_node  )  [protected, virtual]

The visiting method for an AEInsert statement node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitInsertionTable ( AEInsertionTable in_node  )  [protected, virtual]

The visiting method for an AEInsertionTable node.

This default implementation calls the protected method DefaultVisit().

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitIntersect ( AEIntersect in_node  )  [protected, virtual]

The visiting method for an AEIntersect node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitIntervalLiteral ( AEIntervalLiteral in_node  )  [protected, virtual]

The visiting method for an AEIntervalLiteral value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitJoin ( AEJoin in_node  )  [protected, virtual]

The visiting method for an AEJoin node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitLikePredicate ( AELikePredicate in_node  )  [protected, virtual]

The visiting method for an AELikePredicate boolean expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitLiteral ( AELiteral in_node  )  [protected, virtual]

The visiting method for an AELiteral value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitMultiply ( AEMultiply in_node  )  [protected, virtual]

The visiting method for an AEMultiply value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitNegate ( AENegate in_node  )  [protected, virtual]

The visiting method for an AENegate value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitNot ( AENot in_node  )  [protected, virtual]

The visiting method for an AENot boolean expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitNull ( AENull in_node  )  [protected, virtual]

The visiting method for an AENull value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitNullPredicate ( AENullPredicate in_node  )  [protected, virtual]

The visiting method for an AENullPredicate boolean expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitOr ( AEOr in_node  )  [protected, virtual]

The visiting method for an AEOr boolean expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitParameter ( AEParameter in_node  )  [protected, virtual]

The visiting method for an AEParameter value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitProcedure ( AEProcedure in_node  )  [protected, virtual]

The visiting method for an AEProcedure node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitProcedureCall ( AEProcedureCall in_node  )  [protected, virtual]

The visiting method for an AEProcedureCall value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitProject ( AEProject in_node  )  [protected, virtual]

The visiting method for an AEProject node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitProxyColumn ( AEProxyColumn in_node  )  [protected, virtual]

The visiting method for an AEProxyColumn value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitQuantifiedComparison ( AEQuantifiedComparison in_node  )  [protected, virtual]

The visiting method for an AEQuantifiedComparison boolean expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitQuery ( AEQuery in_node  )  [protected, virtual]

The visiting method for an AEQuery node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitRename ( AERename in_node  )  [protected, virtual]

The visiting method for an AERename node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitScalarFn ( AEScalarFn in_node  )  [protected, virtual]

The visiting method for an AEScalarFn expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitSearchedCase ( AESearchedCase in_node  )  [protected, virtual]

The visiting method for an AESearchedCase value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitSearchedDelete ( AESearchedDelete in_node  )  [protected, virtual]

The visiting method for an AESearchedDelete statement node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitSearchedUpdate ( AESearchedUpdate in_node  )  [protected, virtual]

The visiting method for an AESearchedUpdate statement node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitSearchedWhenClause ( AESearchedWhenClause in_node  )  [protected, virtual]

The visiting method for an AESearchedWhenClause value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitSelect ( AESelect in_node  )  [protected, virtual]

The visiting method for an AESelect node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitSetClause ( AESetClause in_node  )  [protected, virtual]

The visiting method for an AESetClause statement node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitSetClauseList ( AESetClauseList in_node  )  [protected, virtual]

The visiting method for an AESetClauseList statement node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitSimpleCase ( AESimpleCase in_node  )  [protected, virtual]

The visiting method for an AESimpleCase value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitSimpleWhenClause ( AESimpleWhenClause in_node  )  [protected, virtual]

The visiting method for an AESimpleWhenClause value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitSort ( AESort in_node  )  [protected, virtual]

The visiting method for an AESort node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitSubQuery ( AESubQuery in_node  )  [protected, virtual]

The visiting method for an AESubQuery node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitSubtract ( AESubtract in_node  )  [protected, virtual]

The visiting method for an AESubtract value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitTable ( AETable in_node  )  [protected, virtual]

The visiting method for an AETable node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitTableConstructor ( AETableConstructor in_node  )  [protected, virtual]

The visiting method for an AETableConstructor node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitTop ( AETop in_node  )  [protected, virtual]

The visiting method for an AETop node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitTopNSort ( AETopNSort in_node  )  [protected, virtual]

The visiting method for an AETopNSort node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitUnion ( AEUnion in_node  )  [protected, virtual]

The visiting method for an AEUnion node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitValueList ( AEValueList in_node  )  [protected, virtual]

The visiting method for an AEValueList node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.

virtual void VisitValueSubQuery ( AEValueSubQuery in_node  )  [protected, virtual]

The visiting method for an AEValueSubQuery value expression node.

Parameters:
in_node Input AE tree node. Cannot be NULL. (NOT OWN)

Reimplemented from AENodeVisitor.


Member Data Documentation

CloneMap m_cloneMap [protected]

Maps all AERelationalExpr nodes from the origin to the clone. This allows all column references (AEColumn and AEProxyColumn) to be validated. (NOT OWN).


The documentation for this class was generated from the following file:

Generated on Wed May 17 14:21:16 2017 for SimbaEngine 10.1.3.1011 by simba