本文整理汇总了C++中SeqScanPlanNode::getInlinePlanNodes方法的典型用法代码示例。如果您正苦于以下问题:C++ SeqScanPlanNode::getInlinePlanNodes方法的具体用法?C++ SeqScanPlanNode::getInlinePlanNodes怎么用?C++ SeqScanPlanNode::getInlinePlanNodes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SeqScanPlanNode
的用法示例。
在下文中一共展示了SeqScanPlanNode::getInlinePlanNodes方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: p_init
bool SeqScanExecutor::p_init(AbstractPlanNode* abstract_node,
TempTableLimits* limits)
{
VOLT_TRACE("init SeqScan Executor");
SeqScanPlanNode* node = dynamic_cast<SeqScanPlanNode*>(abstract_node);
assert(node);
bool isSubquery = node->isSubQuery();
assert(isSubquery || node->getTargetTable());
assert((! isSubquery) || (node->getChildren().size() == 1));
//
// OPTIMIZATION: If there is no predicate for this SeqScan,
// then we want to just set our OutputTable pointer to be the
// pointer of our TargetTable. This prevents us from just
// reading through the entire TargetTable and copying all of
// the tuples. We are guarenteed that no Executor will ever
// modify an input table, so this operation is safe
//
if (node->getPredicate() != NULL || node->getInlinePlanNodes().size() > 0) {
// Create output table based on output schema from the plan
const std::string& temp_name = (node->isSubQuery()) ?
node->getChildren()[0]->getOutputTable()->name():
node->getTargetTable()->name();
setTempOutputTable(limits, temp_name);
}
//
// Otherwise create a new temp table that mirrors the
// output schema specified in the plan (which should mirror
// the output schema for any inlined projection)
//
else {
node->setOutputTable(isSubquery ?
node->getChildren()[0]->getOutputTable() :
node->getTargetTable());
}
// Inline aggregation can be serial, partial or hash
m_aggExec = voltdb::getInlineAggregateExecutor(node);
return true;
}