IProjectionHandler Class Reference

Defines the interface for passing down a relational PROJECTION operation to the DSII. More...

Inherited by DSIExtAbstractProjectionHandler.

List of all members.

Public Member Functions

virtual AutoPtr< AERelationalExprPassdown (AEProject *io_node)=0
 Pass down the given projection operation.
virtual ~IProjectionHandler ()
 Destructor.

Protected Member Functions

 IProjectionHandler ()
 Constructor.

Detailed Description

Defines the interface for passing down a relational PROJECTION operation to the DSII.

A PROJECTION is defined by a project list and a table on which the projection operates. In the project list there would be project item(s). The engine will attempt to pass down each of the project items.

If passing down the whole projection operation succeeds (all the project items are passed down), the engine will get the relational expression representing the result table of applying the passed down projection operation. The result table will be used to replace the AEProject node in AE tree.

If passing down the whole projection operation fails (any of the project items cannot be passed down), the engine will go to visit sub-expressions of the projection items not being passed down and attempt to pass down them. If it is not passed down successfully, the engine will continue to visit its sub-expressions until passing down succeeds or it has no child. In this case, the engine will update the AEProject node after applying projection operation. The updated AEProject node will be used by the engine to handle the rest of the projection operation.

For example, if the DSII is only able to handle the projection "C1" and "C2", but the SQLEngine is trying to pass down the expression "C1 + C2". Passdown() would update AEProject node defined by the following project list and table:

Project list: C1 + C2 Project table: C1 | C2 --- | --- | |

This design allows a "partial" projection operation to be handled.


Constructor & Destructor Documentation

virtual ~IProjectionHandler (  )  [inline, virtual]

Destructor.

IProjectionHandler (  )  [inline, protected]

Constructor.


Member Function Documentation

virtual AutoPtr<AERelationalExpr> Passdown ( AEProject io_node  )  [pure virtual]

Pass down the given projection operation.

Parameters:
io_node The projection operation node and will probably be updated if partial pass down occurs. Cannot be NULL. (NOT OWN)
Returns:
The relational expression representing the result of applying the projection operation. If the projection operation is fully passed down, the result would be a result table that includes all the project items as its columns; NULL if the projection operation is partially passed down or passing down projection does not occur.

Implemented in DSIExtAbstractProjectionHandler.


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