A platform for high-performance distributed tool and library development written in C++. It can be deployed in two different cluster modes: standalone or distributed. API for v0.5.0, released on June 13, 2018.
|
#include <DereferenceLambda.h>
Public Member Functions | |
unsigned int | getInputIndex (int i) override |
DereferenceLambda (LambdaTree< Ptr< OutType >> &input) | |
unsigned int | getNumInputs () override |
std::string | getTypeOfLambda () override |
std::string | toTCAPString (std::vector< std::string > &inputTupleSetNames, std::vector< std::string > &inputColumnNames, std::vector< std::string > &inputColumnsToApply, std::vector< std::string > &childrenLambdaNames, int lambdaLabel, std::string computationName, int computationLabel, std::string &outputTupleSetName, std::vector< std::string > &outputColumns, std::string &outputColumnName, std::string &lambdaName, MultiInputsBase *multiInputsComp=nullptr, bool amIPartOfJoinPredicate=false, bool amILeftChildOfEqualLambda=false, bool amIRightChildOfEqualLambda=false, std::string parentLambdaName="", bool isSelfJoin=false) override |
std::map< std::string, std::string > | getInfo () override |
int | getNumChildren () override |
GenericLambdaObjectPtr | getChild (int which) override |
ComputeExecutorPtr | getExecutor (TupleSpec &inputSchema, TupleSpec &attsToOperateOn, TupleSpec &attsToIncludeInOutput) override |
Public Member Functions inherited from pdb::TypedLambdaObject< OutType > | |
virtual | ~TypedLambdaObject ()=default |
std::string | getOutputType () override |
Public Member Functions inherited from pdb::GenericLambdaObject | |
virtual | ~GenericLambdaObject ()=default |
void | setInputIndex (int i, unsigned int index) |
virtual ComputeExecutorPtr | getExecutor (TupleSpec &inputSchema, TupleSpec &attsToOperateOn, TupleSpec &attsToIncludeInOutput, ComputeInfoPtr) |
virtual ComputeExecutorPtr | getLeftHasher (TupleSpec &inputSchema, TupleSpec &attsToOperateOn, TupleSpec &attsToIncludeInOutput) |
virtual ComputeExecutorPtr | getLeftHasher (TupleSpec &inputSchema, TupleSpec &attsToOperateOn, TupleSpec &attsToIncludeInOutput, ComputeInfoPtr) |
virtual ComputeExecutorPtr | getRightHasher (TupleSpec &inputSchema, TupleSpec &attsToOperateOn, TupleSpec &attsToIncludeInOutput) |
virtual ComputeExecutorPtr | getRightHasher (TupleSpec &inputSchema, TupleSpec &attsToOperateOn, TupleSpec &attsToIncludeInOutput, ComputeInfoPtr) |
std::string | getTCAPString (const std::string &inputTupleSetName, const std::vector< std::string > &inputColumnNames, const std::vector< std::string > &inputColumnsToApply, const std::string &outputTupleSetName, const std::vector< std::string > &outputColumns, const std::string &outputColumnName, const std::string &tcapOperation, const std::string &computationNameAndLabel, const std::string &lambdaNameAndLabel, const std::map< std::string, std::string > &info) |
virtual std::string | toTCAPStringForCartesianJoin (int lambdaLabel, std::string computationName, int computationLabel, std::string &outputTupleSetName, std::vector< std::string > &outputColumns, std::string &outputColumnName, std::string &myLambdaName, MultiInputsBase *multiInputsComp) |
Public Attributes | |
LambdaTree< Ptr< OutType > > | input |
Definition at line 34 of file DereferenceLambda.h.
|
inline |
Definition at line 45 of file DereferenceLambda.h.
|
inlineoverridevirtual |
gets a particular child of this Lambda
which | - // TODO missing description |
Implements pdb::GenericLambdaObject.
Definition at line 260 of file DereferenceLambda.h.
|
inlineoverridevirtual |
Used this gets an executor that appends the result of running this lambda to the end of each tuple
inputSchema | - // TODO missing description |
attsToOperateOn | - // TODO missing description |
attsToIncludeInOutput | - // TODO missing description |
Implements pdb::GenericLambdaObject.
Definition at line 266 of file DereferenceLambda.h.
|
inlineoverridevirtual |
Returns the additional information about this lambda currently lambda type
Implements pdb::GenericLambdaObject.
Definition at line 248 of file DereferenceLambda.h.
|
inlineoverridevirtual |
Used to get the index of this lambda's input in the corresponding computation
i | - the index of the input |
Reimplemented from pdb::GenericLambdaObject.
Definition at line 40 of file DereferenceLambda.h.
|
inlineoverridevirtual |
one big technical problem is that when tuples are added to a hash table to be recovered at a later time, we we break a pipeline. The difficulty with this is that when we want to probe a hash table to find a set of hash values, we can't use the input TupleSet as a way to create the columns to store the result of the probe. The hash table needs to be able to create (from scratch) the columns that store the output. This is a problem, because the hash table has no information about the types of the objects that it contains. The way around this is that we have a function attached to each GenericLambdaObject that allows us to ask the GenericLambdaObject to try to add a column to a tuple set, of a specific type, where the type name is specified as a string. When the hash table needs to create an output TupleSet, it can ask all of the GenericLambdaObjects associated with a query to create the necessary columns, as a way to build up the output TupleSet. This method is how the hash table can ask for this. It takes tree args: the type of the column that the hash table wants the tuple set to build, the tuple set to add the column to, and the position where the column will be added. If the GenericLambdaObject cannot build the column (it has no knowledge of that type) a false is returned. Otherwise, a true is returned. virtual bool addColumnToTupleSet (std :: string &typeToMatch, TupleSetPtr addToMe, int posToAddTo) = 0; returns the number of children of this Lambda type
Implements pdb::GenericLambdaObject.
Definition at line 256 of file DereferenceLambda.h.
|
inlineoverridevirtual |
Used to get number of inputs to this Lambda
Implements pdb::GenericLambdaObject.
Definition at line 47 of file DereferenceLambda.h.
|
inlineoverridevirtual |
returns the name of this LambdaBase type, as a string
Implements pdb::GenericLambdaObject.
Definition at line 51 of file DereferenceLambda.h.
|
inlineoverridevirtual |
This gets TCAP string corresponding to this Lambda JiaNote: below is just a default implementation for Lambdas to "Apply" you can override this implementation in your subclasses
// TODO this method has been glued and tied together multiple times and should be completely rewritten and refactored
inputTupleSetNames | - // TODO add proper descriptions of the parameter |
inputColumnNames | - // TODO add proper descriptions of the parameter |
inputColumnsToApply | - // TODO add proper descriptions of the parameter |
childrenLambdaNames | - // TODO add proper descriptions of the parameter |
lambdaLabel | - // TODO add proper descriptions of the parameter |
computationName | - // TODO add proper descriptions of the parameter |
computationLabel | - // TODO add proper descriptions of the parameter |
outputTupleSetName | - // TODO add proper descriptions of the parameter |
outputColumns | - // TODO add proper descriptions of the parameter |
outputColumnName | - // TODO add proper descriptions of the parameter |
myLambdaName | - // TODO add proper descriptions of the parameter |
multiInputsComp | - // TODO add proper descriptions of the parameter |
amIPartOfJoinPredicate | - // TODO add proper descriptions of the parameter |
amILeftChildOfEqualLambda | - // TODO add proper descriptions of the parameter |
amIRightChildOfEqualLambda | - // TODO add proper descriptions of the parameter |
parentLambdaName | - // TODO add proper descriptions of the parameter |
isSelfJoin | - // TODO add proper descriptions of the parameter |
Reimplemented from pdb::GenericLambdaObject.
Definition at line 55 of file DereferenceLambda.h.
LambdaTree<Ptr<OutType> > pdb::DereferenceLambda< OutType >::input |
Definition at line 37 of file DereferenceLambda.h.