コード例 #1
0
ファイル: CQueryContext.cpp プロジェクト: hsyuan/gporca
//---------------------------------------------------------------------------
//	@function:
//		CQueryContext::SetReqdSystemCols
//
//	@doc:
// 		Collect system columns from output columns
//
//---------------------------------------------------------------------------
void
CQueryContext::SetSystemCols
(
    IMemoryPool *pmp
)
{
    GPOS_ASSERT(NULL == m_pdrgpcrSystemCols);
    GPOS_ASSERT(NULL != m_pdrgpcr);

    m_pdrgpcrSystemCols = GPOS_NEW(pmp) DrgPcr(pmp);
    const ULONG ulReqdCols = m_pdrgpcr->UlLength();
    for (ULONG ul = 0; ul < ulReqdCols; ul++)
    {
        CColRef *pcr = (*m_pdrgpcr)[ul];
        if (pcr->FSystemCol())
        {
            m_pdrgpcrSystemCols->Append(pcr);
        }
    }
}
コード例 #2
0
ファイル: CQueryContext.cpp プロジェクト: b-xiang/gporca
//---------------------------------------------------------------------------
//	@function:
//		CQueryContext::SetReqdSystemCols
//
//	@doc:
// 		Collect system columns from output columns
//
//---------------------------------------------------------------------------
void
CQueryContext::SetSystemCols
	(
	IMemoryPool *mp
	)
{
	GPOS_ASSERT(NULL == m_pdrgpcrSystemCols);
	GPOS_ASSERT(NULL != m_pdrgpcr);

	m_pdrgpcrSystemCols = GPOS_NEW(mp) CColRefArray(mp);
	const ULONG ulReqdCols = m_pdrgpcr->Size();
	for (ULONG ul = 0; ul < ulReqdCols; ul++)
	{
		CColRef *colref = (*m_pdrgpcr)[ul];
		if (colref->FSystemCol())
		{
			m_pdrgpcrSystemCols->Append(colref);
		}
	}
}