22 const std::string &jobID,
30 computePlan(computePlan),
31 logicalPlan(logicalPlan),
43 std::vector<AdvancedPhysicalPipelineNodePtr> &pipesToPipeline) {
46 source = pipesToPipeline.front()->getSourceSetIdentifier();
49 pipeline.insert(
pipeline.begin(), pipesToPipeline.begin(), pipesToPipeline.end());
62 for(
auto i = 0; i <
pipeline.back()->getNumConsumers(); ++i) {
69 approxSize.
setName = sink->getSetName();
73 stats->addSet(sink->getDatabase(), sink->getSetName(), approxSize);
88 ds.
pageSize = stats !=
nullptr ? stats->getPageSize(
source->getDatabase(),
source->getSetName()) : 0;
89 ds.
numTuples = stats !=
nullptr ? stats->getNumTuples(
source->getDatabase(),
source->getSetName()) : 0;
90 ds.
numBytes = stats !=
nullptr ? stats->getNumBytes(
source->getDatabase(),
source->getSetName()) : 0;
100 assert(
pipeline.front()->getNumProducers() == 2);
130 auto computations = p->getPipeComputations();
137 if(pipeline.front()->isJoining()) {
155 if (p->isJoining()) {
161 auto sets = p->getProbingHashSets();
164 assert(!sets.empty());
Handle< SetIdentifier > source
void extractAtomicComputations()
std::shared_ptr< Statistics > StatisticsPtr
void updateConsumers(const Handle< SetIdentifier > &sink, DataStatistics approxSize, const StatisticsPtr &stats)
std::list< AdvancedPhysicalPipelineNodePtr > pipeline
const vector< AtomicComputationPtr > & getPipeComputations() const
void extractHashSetsToProbe()
std::shared_ptr< LogicalPlan > LogicalPlanPtr
void setSourceSetIdentifier(const Handle< SetIdentifier > &sourceSetIdentifier)
list< AtomicComputationPtr > pipelineComputations
virtual DataStatistics approximateResultSize(const StatisticsPtr &stats)
void includeHashComputation()
shared_ptr< Configuration > ConfigurationPtr
virtual PhysicalOptimizerResultPtr generate(int nextStageID, const StatisticsPtr &stats)=0
unordered_map< std::string, std::string > probingHashSets
virtual PhysicalOptimizerResultPtr generatePipelined(int nextStageID, const StatisticsPtr &stats, std::vector< AdvancedPhysicalPipelineNodePtr > &pipesToPipeline)
std::shared_ptr< AdvancedPhysicalAbstractPipe > AdvancedPhysicalPipelineNodePtr
std::shared_ptr< PhysicalOptimizerResult > PhysicalOptimizerResultPtr
const AdvancedPhysicalAbstractAlgorithmPtr & getSelectedAlgorithm() const