43 std::string computationSpecifier =
node->getComputationName();
58 tupleStageBuilder->setJobStageId(nextStageID++);
59 tupleStageBuilder->setTargetTupleSetName(
node->getInputName());
60 tupleStageBuilder->setTargetComputationName(computationSpecifier);
61 tupleStageBuilder->setOutputTypeName(comp->getOutputType());
62 tupleStageBuilder->setSinkContext(sink);
63 tupleStageBuilder->setRepartition(
true);
64 tupleStageBuilder->setRepartitionVector(
true);
65 tupleStageBuilder->setAllocatorPolicy(comp->getAllocatorPolicy());
69 result->physicalPlanToOutput.emplace_back(tupleStageBuilder->build());
72 result->success =
true;
85 std::string computationSpecifier =
node->getComputationName();
94 if (curComp->needsMaterializeOutput()) {
95 sink = makeObject<SetIdentifier>(curComp->getDatabaseName(), curComp->getSetName());
96 sink->setPageSize(
conf->getPageSize());
98 sink = makeObject<SetIdentifier>(
jobId,
node->getOutputName());
99 curComp->setOutput(jobId,
node->getOutputName());
100 sink->setPageSize(
conf->getPageSize());
101 result->interGlobalSets.push_back(sink);
105 tupleStageBuilder->setJobStageId(nextStageID++);
106 tupleStageBuilder->setTargetTupleSetName(
node->getInputName());
107 tupleStageBuilder->setTargetComputationName(computationSpecifier);
108 tupleStageBuilder->setOutputTypeName(curComp->getOutputType());
109 tupleStageBuilder->setSinkContext(sink);
110 tupleStageBuilder->setRepartition(
true);
111 tupleStageBuilder->setRepartitionVector(
true);
112 tupleStageBuilder->setAllocatorPolicy(curComp->getAllocatorPolicy());
115 result->physicalPlanToOutput.emplace_back(tupleStageBuilder->build());
119 result->createdSourceComputations.push_back(
getHandle());
122 result->success =
true;
138 std::string computationSpecifier =
node->getComputationName();
148 if (!curComp->needsMaterializeOutput()) {
151 curComp->setOutput(
jobId,
node->getOutputName());
154 sink = makeObject<SetIdentifier>(
jobId,
node->getOutputName());
155 sink->setPageSize(
conf->getPageSize());
158 result->interGlobalSets.push_back(sink);
161 sink = makeObject<SetIdentifier>(curComp->getDatabaseName(), curComp->getSetName());
165 tupleStageBuilder->setJobStageId(nextStageID++);
166 tupleStageBuilder->setTargetTupleSetName(
node->getInputName());
167 tupleStageBuilder->setTargetComputationName(computationSpecifier);
168 tupleStageBuilder->setOutputTypeName(curComp->getOutputType());
169 tupleStageBuilder->setRepartition(
true);
170 tupleStageBuilder->setRepartitionVector(
true);
171 tupleStageBuilder->setAllocatorPolicy(curComp->getAllocatorPolicy());
174 result->physicalPlanToOutput.emplace_back(tupleStageBuilder->build());
178 result->createdSourceComputations.push_back(
getHandle());
181 result->success =
true;
AbstractPhysicalNodePtr getHandle()
std::shared_ptr< Statistics > StatisticsPtr
LogicalPlanPtr logicalPlan
std::shared_ptr< LogicalPlan > LogicalPlanPtr
PhysicalOptimizerResultPtr analyzeSingleConsumer(TupleSetJobStageBuilderPtr &tupleStageBuilder, SimplePhysicalNodePtr &prevNode, const StatisticsPtr &stats, int nextStageID) override
shared_ptr< Configuration > ConfigurationPtr
std::shared_ptr< struct AtomicComputation > AtomicComputationPtr
std::shared_ptr< SimplePhysicalNode > SimplePhysicalNodePtr
PhysicalOptimizerResultPtr analyzeMultipleConsumers(TupleSetJobStageBuilderPtr &ptr, SimplePhysicalNodePtr &prevNode, const StatisticsPtr &stats, int nextStageID) override
PhysicalOptimizerResultPtr analyzeOutput(TupleSetJobStageBuilderPtr &tupleStageBuilder, SimplePhysicalNodePtr &prevNode, const StatisticsPtr &stats, int nextStageID) override
SimplePhysicalPartitionNode(string jobId, AtomicComputationPtr node, const Handle< ComputePlan > &computePlan, LogicalPlanPtr logicalPlan, ConfigurationPtr conf)
AtomicComputationPtr node
Handle< SetIdentifier > sourceSetIdentifier
std::shared_ptr< TupleSetJobStageBuilder > TupleSetJobStageBuilderPtr
std::shared_ptr< PhysicalOptimizerResult > PhysicalOptimizerResultPtr