本文整理汇总了C++中SeqScanPlanNode::getOutputSchema方法的典型用法代码示例。如果您正苦于以下问题:C++ SeqScanPlanNode::getOutputSchema方法的具体用法?C++ SeqScanPlanNode::getOutputSchema怎么用?C++ SeqScanPlanNode::getOutputSchema使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SeqScanPlanNode
的用法示例。
在下文中一共展示了SeqScanPlanNode::getOutputSchema方法的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);
assert(node->getTargetTable());
//
// 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 (!this->needsOutputTableClear())
{
node->setOutputTable(node->getTargetTable());
}
//
// 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
{
TupleSchema* schema = node->generateTupleSchema(true);
int column_count = static_cast<int>(node->getOutputSchema().size());
std::string* column_names = new std::string[column_count];
for (int ctr = 0; ctr < column_count; ctr++)
{
column_names[ctr] = node->getOutputSchema()[ctr]->getColumnName();
}
node->setOutputTable(TableFactory::getTempTable(node->databaseId(),
node->getTargetTable()->name(),
schema,
column_names,
limits));
delete[] column_names;
}
return true;
}