本文整理汇总了C++中DrgPpartkeys::Release方法的典型用法代码示例。如果您正苦于以下问题:C++ DrgPpartkeys::Release方法的具体用法?C++ DrgPpartkeys::Release怎么用?C++ DrgPpartkeys::Release使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DrgPpartkeys
的用法示例。
在下文中一共展示了DrgPpartkeys::Release方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GPOS_NEW
//---------------------------------------------------------------------------
// @function:
// CPartInfo::PpartinfoCombine
//
// @doc:
// Combine two part info objects
//
//---------------------------------------------------------------------------
CPartInfo *
CPartInfo::PpartinfoCombine
(
IMemoryPool *pmp,
CPartInfo *ppartinfoFst,
CPartInfo *ppartinfoSnd
)
{
GPOS_ASSERT(NULL != ppartinfoFst);
GPOS_ASSERT(NULL != ppartinfoSnd);
DrgPpartentries *pdrgppartentries = GPOS_NEW(pmp) DrgPpartentries(pmp);
// copy part entries from first part info object
CUtils::AddRefAppend(pdrgppartentries, ppartinfoFst->m_pdrgppartentries);
// copy part entries from second part info object, except those which already exist
const ULONG ulLen = ppartinfoSnd->m_pdrgppartentries->UlLength();
for (ULONG ul = 0; ul < ulLen; ul++)
{
CPartInfoEntry *ppartinfoentry = (*(ppartinfoSnd->m_pdrgppartentries))[ul];
DrgPpartkeys *pdrgppartkeys = ppartinfoFst->PdrgppartkeysByScanId(ppartinfoentry->UlScanId());
if (NULL != pdrgppartkeys)
{
// there is already an entry with the same scan id; need to add to it
// the keys from the current entry
DrgPpartkeys *pdrgppartkeysCopy = CPartKeys::PdrgppartkeysCopy(pmp, ppartinfoentry->Pdrgppartkeys());
CUtils::AddRefAppend(pdrgppartkeys, pdrgppartkeysCopy);
pdrgppartkeysCopy->Release();
}
else
{
CPartInfoEntry *ppartinfoentryCopy = ppartinfoentry->PpartinfoentryCopy(pmp);
pdrgppartentries->Append(ppartinfoentryCopy);
}
}
return GPOS_NEW(pmp) CPartInfo(pdrgppartentries);
}