ETMaterializer Class Reference

The interface of an "Materializer" that translate an AE Tree into an Execution Tree (ET). More...

Inherited by ETSimbaMaterializer.

List of all members.

Public Member Functions

Simba::SQLEngine::DSIExtExecutorContextGetExecutorContext ()
 Get a pointer reference to the data engine context.
IFunctorFactoryGetFunctorFactory ()
 Get a pointer reference to the IFunctorFactory.
ETMaterializerContext * GetMaterializerContext ()
 Get the materializer context for the query being materialized.
ETStatement * Materialize (AEStatement *in_aet)
 Translate the given AET to ET. After the translation, the ownership of the given AET is transfered to the result ET.
ETBooleanExprMaterializeBooleanExpr (AEBooleanExpr *in_node, const std::set< AEBooleanExpr * > &in_subset)
 Materialize an AEBooleanExpr expression node.
ETBooleanExprMaterializeBooleanExpr (AEBooleanExpr *in_node)
 Materialize an AEBooleanExpr expression node.
ETRelationalExprMaterializeRelationalExpr (AERelationalExpr *in_node, IPushDownContainer *in_pushDownContainer=NULL)
 Materialize an AET_RelationalExpr expression node.
ETSetClauseList * MaterializeSetClauseList (AESetClauseList *in_node)
 Materialize an AESetClauseList node.
ETValueExpr * MaterializeValueExpr (AEValueExpr *in_node)
 Materialize an AEValueExpr expression node.
ETValueList * MaterializeValueList (AEValueList *in_node)
 Materialize an AEValueList node.
void TakeMaterializerContext (ETMaterializer *in_materializer)
 Take the materializer context from in_materializer.
virtual ~ETMaterializer ()
 Destructor.

Protected Member Functions

 ETMaterializer (Simba::SQLEngine::DSIExtExecutorContext *in_context)
 Constructor.
virtual ETValueExpr * MaterializeAdd (AEAdd *in_node)=0
 Materialize an AEAdd value expression node.
virtual ETRelationalExprMaterializeAggregate (AEAggregate *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AEAggregate node.
virtual ETValueExpr * MaterializeAggrFunction (AEAggrFunction *in_node)=0
 Materialize an AEAggrFunction value expression node.
virtual ETBooleanExprMaterializeAnd (AEAnd *in_node)=0
 Materialize an AEAnd boolean expression node.
virtual ETBooleanExprMaterializeBooleanTrue (AEBooleanTrue *in_node)=0
 Materialize an AEBooleanTrue boolean expression node.
virtual ETValueExpr * MaterializeColumn (AEColumn *in_node)=0
 Materialize an AEColumn value expression node.
virtual ETBooleanExprMaterializeComparison (AEComparison *in_node)=0
 Materialize an AEComparison boolean expression node.
virtual ETValueExpr * MaterializeCountStarAggrFunction (AECountStarAggrFunction *in_node)=0
 Materialize an AECountStarAggrFunction value expression node.
virtual ETRelationalExprMaterializeCrossJoin (AECrossJoin *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AECrossJoin node.
virtual ETValueExpr * MaterializeCustomAggregateFn (AECustomAggregateFn *in_node)=0
 Materialize an AECustomAggregateFn value expression node.
virtual ETValueExpr * MaterializeCustomScalarFn (AECustomScalarFn *in_node)=0
 Materialize an AECustomScalarFn value expression node.
virtual ETValueExpr * MaterializeDefault (AEDefault *in_node)=0
 Materialize an AEDefault value expression node.
virtual ETRelationalExprMaterializeDistinct (AEDistinct *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AEDistinct node.
virtual ETValueExpr * MaterializeDivide (AEDivide *in_node)=0
 Materialize an AEDivide value expression node.
virtual ETRelationalExprMaterializeDummyTable (AEDummyTable *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AEDistinct node.
virtual ETRelationalExprMaterializeExcept (AEExcept *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AEExcept node.
virtual ETBooleanExprMaterializeExistsPredicate (AEExistsPredicate *in_node)=0
 Materialize an AEExistsPredicate boolean expression node.
virtual ETBooleanExprMaterializeInPredicate (AEInPredicate *in_node)=0
 Materialize an AEInPredicate boolean expression node.
virtual ETRelationalExprMaterializeInsertionTable (AEInsertionTable *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AEInsertionTable node.
virtual ETRelationalExprMaterializeIntersect (AEIntersect *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AEIntersect node.
virtual ETValueExpr * MaterializeIntervalLiteral (AEIntervalLiteral *in_node)=0
 Materialize an AEIntervalLiteral value expression node.
virtual ETRelationalExprMaterializeJoin (AEJoin *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AEJoin node.
virtual ETBooleanExprMaterializeLikePredicate (AELikePredicate *in_node)=0
 Materialize an AELikePredicate boolean expression node.
virtual ETValueExpr * MaterializeLiteral (AELiteral *in_node)=0
 Materialize an AELiteral value expression node.
virtual ETValueExpr * MaterializeMultiply (AEMultiply *in_node)=0
 Materialize an AEMultiply value expression node.
virtual ETValueExpr * MaterializeNegate (AENegate *in_node)=0
 Materialize an AENegate value expression node.
virtual ETBooleanExprMaterializeNot (AENot *in_node)=0
 Materialize an AENot boolean expression node.
virtual ETValueExpr * MaterializeNull (AENull *in_node)=0
 Materialize an AENull value expression node.
virtual ETBooleanExprMaterializeNullPredicate (AENullPredicate *in_node)=0
 Materialize an AENullPredicate boolean expression node.
virtual ETBooleanExprMaterializeOr (AEOr *in_node)=0
 Materialize an AEOr boolean expression node.
virtual ETValueExpr * MaterializeParameter (AEParameter *in_node)=0
 Materialize an AEParameter value expression node.
virtual ETRelationalExprMaterializeProcedure (AEProcedure *in_node)=0
 Materialize an AEProcedure node.
virtual ETRelationalExprMaterializeProject (AEProject *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AEProject node.
virtual ETValueExpr * MaterializeProxyColumn (AEProxyColumn *in_node)=0
 Materialize an AEProxyColumn value expression node.
virtual ETBooleanExprMaterializeQuantifiedComparison (AEQuantifiedComparison *in_node)=0
 Materialize an AEQuantifiedComparison boolean expression node.
virtual ETValueExpr * MaterializeRename (AERename *in_node)=0
 Materialize an AERename node.
virtual ETValueExpr * MaterializeScalarFn (AEScalarFn *in_node)=0
 Materialize an AEScalarFn value expression node.
virtual ETValueExpr * MaterializeSearchedCase (AESearchedCase *in_node)=0
 Materialize an AESearchedCase value expression node.
virtual ETValueExpr * MaterializeSearchedWhenClause (AESearchedWhenClause *in_node)=0
 Materialize an AESearchedWhenClause value expression node.
virtual ETRelationalExprMaterializeSelect (AESelect *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AESelect node.
virtual ETSetClause * MaterializeSetClause (AESetClause *in_node)=0
 Materialize an AESetClause boolean expression node.
virtual ETValueExpr * MaterializeSimpleCase (AESimpleCase *in_node)=0
 Materialize an AESimpleCase value expression node.
virtual ETValueExpr * MaterializeSimpleWhenClause (AESimpleWhenClause *in_node)=0
 Materialize an AESimpleWhenClause value expression node.
virtual ETRelationalExprMaterializeSort (AESort *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AESort node.
virtual ETRelationalExprMaterializeSubQuery (AESubQuery *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AESubQuery node.
virtual ETValueExpr * MaterializeSubtract (AESubtract *in_node)=0
 Materialize an AESubtract value expression node.
virtual ETRelationalExprMaterializeTable (AETable *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AETable node.
virtual ETRelationalExprMaterializeTableConstructor (AETableConstructor *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AETableConstructor node.
virtual ETRelationalExprMaterializeTop (AETop *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AETop node.
virtual ETRelationalExprMaterializeTopNSort (AETopNSort *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AETopNSort node.
virtual ETRelationalExprMaterializeUnion (AEUnion *in_node, IPushDownContainer *in_pushDownContainer)=0
 Materialize an AEUnion node.
virtual ETValueExpr * MaterializeValueSubQuery (AEValueSubQuery *in_node)=0
 Materialize an AEValueSubQuery value expression node.

Friends

class ETBooleanExprMaterializer
 Allow these classes to access all the methods in this class.
class ETDmlMaterializer
class ETJoinMaterializer
class ETRelationalExprMaterializer
class ETStatementMaterializer
class ETValueExprMaterializer

Detailed Description

The interface of an "Materializer" that translate an AE Tree into an Execution Tree (ET).

A Materializer translates any AE node into an equivalent ET node(s). It assumes no one-to-one relationship between AE nodes and ET nodes. As a matter of fact, multiple AE nodes of different type can be translated into multiple instances of same type of ET node. It is also possible to translate one AE node into a tree of ET nodes. The following are some examples of what can be done,


Constructor & Destructor Documentation

virtual ~ETMaterializer (  )  [virtual]

Destructor.

ETMaterializer ( Simba::SQLEngine::DSIExtExecutorContext in_context  )  [protected]

Constructor.

Parameters:
in_context A pointer reference to the executor context. (NOT OWN) Cannot be NULL.

Member Function Documentation

Simba::SQLEngine::DSIExtExecutorContext* GetExecutorContext (  )  [inline]

Get a pointer reference to the data engine context.

Returns:
A pointer reference to the data engine context. (NOT OWN)
IFunctorFactory* GetFunctorFactory (  )  [inline]

Get a pointer reference to the IFunctorFactory.

Returns:
A pointer reference to the IFunctorFactory. Cannot be NULL. (NOT OWN)
ETMaterializerContext* GetMaterializerContext (  )  [inline]

Get the materializer context for the query being materialized.

The context object is corresponding to the process of materializing an AE Tree, and hence, only exist during materializing a AE Tree.

Returns:
The materializer context. (NOT OWN)
ETStatement* Materialize ( AEStatement in_aet  ) 

Translate the given AET to ET. After the translation, the ownership of the given AET is transfered to the result ET.

Parameters:
in_aet The AE representation of a SQL statement. Cannot be NULL. (NOT OWN)
Returns:
The root of the execution tree. (OWN)
virtual ETValueExpr* MaterializeAdd ( AEAdd in_node  )  [protected, pure virtual]

Materialize an AEAdd value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeAggregate ( AEAggregate in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AEAggregate node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeAggrFunction ( AEAggrFunction in_node  )  [protected, pure virtual]

Materialize an AEAggrFunction value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETBooleanExpr* MaterializeAnd ( AEAnd in_node  )  [protected, pure virtual]

Materialize an AEAnd boolean expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

ETBooleanExpr* MaterializeBooleanExpr ( AEBooleanExpr in_node,
const std::set< AEBooleanExpr * > &  in_subset 
)

Materialize an AEBooleanExpr expression node.

This is a "dispatcher" method. It dispatches the call to the correct Materialize() method based on the node type of in_node. This is not a virtual method. The assumption is that a customer is interested in providing a implementation for a particular boolean expression such as AEInPredicate rather than how MaterializeInPredicate(AEInPredicate) gets called.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_subset The subset of the given subtree to materialize. Elements are NOT OWNed. If empty, this method will return ETBooleanTrue.
Returns:
The root of the sub-ET materialized. (OWN)
ETBooleanExpr* MaterializeBooleanExpr ( AEBooleanExpr in_node  ) 

Materialize an AEBooleanExpr expression node.

This is a "dispatcher" method. It dispatches the call to the correct Materialize() method based on the node type of in_node. This is not a virtual method. The assumption is that a customer is interested in providing a implementation for a particular boolean expression such as AEInPredicate rather than how MaterializeInPredicate(AEInPredicate) gets called.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)
virtual ETBooleanExpr* MaterializeBooleanTrue ( AEBooleanTrue in_node  )  [protected, pure virtual]

Materialize an AEBooleanTrue boolean expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeColumn ( AEColumn in_node  )  [protected, pure virtual]

Materialize an AEColumn value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETBooleanExpr* MaterializeComparison ( AEComparison in_node  )  [protected, pure virtual]

Materialize an AEComparison boolean expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeCountStarAggrFunction ( AECountStarAggrFunction in_node  )  [protected, pure virtual]

Materialize an AECountStarAggrFunction value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeCrossJoin ( AECrossJoin in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AECrossJoin node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeCustomAggregateFn ( AECustomAggregateFn in_node  )  [protected, pure virtual]

Materialize an AECustomAggregateFn value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeCustomScalarFn ( AECustomScalarFn in_node  )  [protected, pure virtual]

Materialize an AECustomScalarFn value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeDefault ( AEDefault in_node  )  [protected, pure virtual]

Materialize an AEDefault value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeDistinct ( AEDistinct in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AEDistinct node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeDivide ( AEDivide in_node  )  [protected, pure virtual]

Materialize an AEDivide value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeDummyTable ( AEDummyTable in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AEDistinct node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeExcept ( AEExcept in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AEExcept node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETBooleanExpr* MaterializeExistsPredicate ( AEExistsPredicate in_node  )  [protected, pure virtual]

Materialize an AEExistsPredicate boolean expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETBooleanExpr* MaterializeInPredicate ( AEInPredicate in_node  )  [protected, pure virtual]

Materialize an AEInPredicate boolean expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeInsertionTable ( AEInsertionTable in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AEInsertionTable node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeIntersect ( AEIntersect in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AEIntersect node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeIntervalLiteral ( AEIntervalLiteral in_node  )  [protected, pure virtual]

Materialize an AEIntervalLiteral value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeJoin ( AEJoin in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AEJoin node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETBooleanExpr* MaterializeLikePredicate ( AELikePredicate in_node  )  [protected, pure virtual]

Materialize an AELikePredicate boolean expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeLiteral ( AELiteral in_node  )  [protected, pure virtual]

Materialize an AELiteral value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeMultiply ( AEMultiply in_node  )  [protected, pure virtual]

Materialize an AEMultiply value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeNegate ( AENegate in_node  )  [protected, pure virtual]

Materialize an AENegate value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETBooleanExpr* MaterializeNot ( AENot in_node  )  [protected, pure virtual]

Materialize an AENot boolean expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeNull ( AENull in_node  )  [protected, pure virtual]

Materialize an AENull value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETBooleanExpr* MaterializeNullPredicate ( AENullPredicate in_node  )  [protected, pure virtual]

Materialize an AENullPredicate boolean expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETBooleanExpr* MaterializeOr ( AEOr in_node  )  [protected, pure virtual]

Materialize an AEOr boolean expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeParameter ( AEParameter in_node  )  [protected, pure virtual]

Materialize an AEParameter value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeProcedure ( AEProcedure in_node  )  [protected, pure virtual]

Materialize an AEProcedure node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeProject ( AEProject in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AEProject node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeProxyColumn ( AEProxyColumn in_node  )  [protected, pure virtual]

Materialize an AEProxyColumn value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETBooleanExpr* MaterializeQuantifiedComparison ( AEQuantifiedComparison in_node  )  [protected, pure virtual]

Materialize an AEQuantifiedComparison boolean expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

ETRelationalExpr* MaterializeRelationalExpr ( AERelationalExpr in_node,
IPushDownContainer *  in_pushDownContainer = NULL 
)

Materialize an AET_RelationalExpr expression node.

This is a "dispatcher" method. It dispatches the call to the correct Materialize() method based on the node type of in_node. This is not a virtual method. The assumption is that a customer is interested in providing a implementation for a particular value expression such as AET_AggrFunction rather than how MaterializeAggrFunction(AET_AggrFunction) gets called.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)
virtual ETValueExpr* MaterializeRename ( AERename in_node  )  [protected, pure virtual]

Materialize an AERename node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeScalarFn ( AEScalarFn in_node  )  [protected, pure virtual]

Materialize an AEScalarFn value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeSearchedCase ( AESearchedCase in_node  )  [protected, pure virtual]

Materialize an AESearchedCase value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeSearchedWhenClause ( AESearchedWhenClause in_node  )  [protected, pure virtual]

Materialize an AESearchedWhenClause value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeSelect ( AESelect in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AESelect node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETSetClause* MaterializeSetClause ( AESetClause in_node  )  [protected, pure virtual]

Materialize an AESetClause boolean expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

ETSetClauseList* MaterializeSetClauseList ( AESetClauseList in_node  ) 

Materialize an AESetClauseList node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)
virtual ETValueExpr* MaterializeSimpleCase ( AESimpleCase in_node  )  [protected, pure virtual]

Materialize an AESimpleCase value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeSimpleWhenClause ( AESimpleWhenClause in_node  )  [protected, pure virtual]

Materialize an AESimpleWhenClause value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeSort ( AESort in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AESort node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeSubQuery ( AESubQuery in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AESubQuery node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETValueExpr* MaterializeSubtract ( AESubtract in_node  )  [protected, pure virtual]

Materialize an AESubtract value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeTable ( AETable in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AETable node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeTableConstructor ( AETableConstructor in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AETableConstructor node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeTop ( AETop in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AETop node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeTopNSort ( AETopNSort in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AETopNSort node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

virtual ETRelationalExpr* MaterializeUnion ( AEUnion in_node,
IPushDownContainer *  in_pushDownContainer 
) [protected, pure virtual]

Materialize an AEUnion node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
in_pushDownContainer Contains operations which are currently candidates for being pushed down. May be NULL if there are no such operations. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

ETValueExpr* MaterializeValueExpr ( AEValueExpr in_node  ) 

Materialize an AEValueExpr expression node.

This is a "dispatcher" method. It dispatches the call to the correct Materialize() method based on the node type of in_node. This is not a virtual method. The assumption is that a customer is interested in providing a implementation for a particular value expression such as AEAggrFunction rather than how MaterializeAggrFunction(AEAggrFunction) gets called.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)
ETValueList* MaterializeValueList ( AEValueList in_node  ) 

Materialize an AEValueList node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)
virtual ETValueExpr* MaterializeValueSubQuery ( AEValueSubQuery in_node  )  [protected, pure virtual]

Materialize an AEValueSubQuery value expression node.

Parameters:
in_node The root of the AE sub-tree to materialize. (NOT OWN)
Returns:
The root of the sub-ET materialized. (OWN)

Implemented in ETSimbaMaterializer.

void TakeMaterializerContext ( ETMaterializer in_materializer  ) 

Take the materializer context from in_materializer.

Parameters:
in_materializer The ETMaterializer to take materializer context from.

Friends And Related Function Documentation

friend class ETBooleanExprMaterializer [friend]

Allow these classes to access all the methods in this class.

friend class ETDmlMaterializer [friend]
friend class ETJoinMaterializer [friend]
friend class ETRelationalExprMaterializer [friend]
friend class ETStatementMaterializer [friend]
friend class ETValueExprMaterializer [friend]

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

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