本文整理汇总了C++中CGroup::FHasAnyCTEConsumer方法的典型用法代码示例。如果您正苦于以下问题:C++ CGroup::FHasAnyCTEConsumer方法的具体用法?C++ CGroup::FHasAnyCTEConsumer怎么用?C++ CGroup::FHasAnyCTEConsumer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGroup
的用法示例。
在下文中一共展示了CGroup::FHasAnyCTEConsumer方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Pgexpr
//---------------------------------------------------------------------------
// @function:
// CExpressionHandle::DeriveProducerStats
//
// @doc:
// If the child (ulChildIndex) is a CTE consumer, then derive is corresponding
// producer statistics.
//
//---------------------------------------------------------------------------
void
CExpressionHandle::DeriveProducerStats
(
ULONG ulChildIndex,
CColRefSet *pcrsStats
)
{
// check to see if there are any CTE consumers in the group whose properties have
// to be pushed to its corresponding CTE producer
CGroupExpression *pgexpr = Pgexpr();
if (NULL != pgexpr)
{
CGroup *pgroupChild = (*pgexpr)[ulChildIndex];
if (pgroupChild->FHasAnyCTEConsumer())
{
CGroupExpression *pgexprCTEConsumer = pgroupChild->PgexprAnyCTEConsumer();
CLogicalCTEConsumer *popConsumer = CLogicalCTEConsumer::PopConvert(pgexprCTEConsumer->Pop());
COptCtxt::PoctxtFromTLS()->Pcteinfo()->DeriveProducerStats(popConsumer, pcrsStats);
}
return;
}
// statistics are also derived on expressions representing the producer that may have
// multiple CTE consumers. We should ensure that their properties are to pushed to their
// corresponding CTE producer
CExpression *pexpr = Pexpr();
if (NULL != pexpr)
{
CExpression *pexprChild = (*pexpr)[ulChildIndex];
if (COperator::EopLogicalCTEConsumer == pexprChild->Pop()->Eopid())
{
CLogicalCTEConsumer *popConsumer = CLogicalCTEConsumer::PopConvert(pexprChild->Pop());
COptCtxt::PoctxtFromTLS()->Pcteinfo()->DeriveProducerStats(popConsumer, pcrsStats);
}
}
}