当前位置: 首页>>代码示例>>C++>>正文


C++ COperator类代码示例

本文整理汇总了C++中COperator的典型用法代码示例。如果您正苦于以下问题:C++ COperator类的具体用法?C++ COperator怎么用?C++ COperator使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了COperator类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: return

//---------------------------------------------------------------------------
//	@function:
//		CPhysicalHashJoin::FNullableHashKey
//
//	@doc:
//		Check whether a hash key is nullable
//
//---------------------------------------------------------------------------
BOOL
CPhysicalHashJoin::FNullableHashKey
	(
	ULONG ulKey,
	CColRefSet *pcrsNotNull,
	BOOL fInner
	)
	const
{
	COperator *pop = NULL;
	if (fInner)
	{
		pop = (*m_pdrgpexprInnerKeys)[ulKey]->Pop();
	}
	else
	{
		pop = (*m_pdrgpexprOuterKeys)[ulKey]->Pop();
	}
	EOperatorId eopid = pop->Eopid();

	if (COperator::EopScalarIdent == eopid)
	{
		const CColRef *pcr = CScalarIdent::PopConvert(pop)->Pcr();
		return (!pcrsNotNull->FMember(pcr));
	}

	if (COperator::EopScalarConst == eopid)
	{
		return CScalarConst::PopConvert(pop)->Pdatum()->FNull();
	}

	// be conservative for all other scalar expressions where we cannot easily
	// determine nullability
	return true;
}
开发者ID:d,项目名称:gporca,代码行数:43,代码来源:CPhysicalHashJoin.cpp

示例2: thisFunction

Expression CFunction::operator()( const Expression &arg ){

    uint run1,run2;

    CFunction thisFunction(*this);
    thisFunction.nn = arg.getDim();

    for( run1 = 0; run1 < maxAlloc; run1++ ){
        thisFunction.xStore   [run1] = new double[thisFunction.nn];
        thisFunction.seedStore[run1] = new double[thisFunction.nn];
        for( run2 = 0; run2 < thisFunction.nn; run2++ ){
            thisFunction.xStore   [run1][run2] = 0.0;
            thisFunction.seedStore[run1][run2] = 0.0;
        }
    }

    Expression tmp(dim);

    COperator dummy;
    dummy.increaseID();

    for( run1 = 0; run1 < dim; run1++ ){
        delete tmp.element[run1];
        tmp.element[run1] = new COperator( thisFunction, arg, run1 );
    }

    return tmp;
}
开发者ID:OspreyX,项目名称:acado,代码行数:28,代码来源:c_function.cpp

示例3: _Execute

	void CCmdMoveObject::_Execute()
	{
		COpearationLog::GetInst()->WriteOperationLog("DO LShift Or C move object");
		

		CTerrainMesh * pTerrainMesh = CMapEditApp::GetInst()->GetEditingMesh();

		COperator * pOperator = CMapEditApp::GetInst()->GetOperator();

		CMapEditObject * pModel = m_diff.pObject->GetModelGroup()->GetSelfPresentation(0);

		pModel->SetGroupOffset(m_diff.vGroupOffset);

		// erase center image info
		int nCenterGridIndex = pModel->GetUserOffsetAdjustedGridIndex(m_diff.nCenterGridIndex);
		SGrid & gridCenter = pTerrainMesh->GetGrid(nCenterGridIndex);
		gridCenter.vecCenterObjects.erase(
			remove(gridCenter.vecCenterObjects.begin(), gridCenter.vecCenterObjects.end(), m_diff.pObject), gridCenter.vecCenterObjects.end() );

		CToolSetModel::GetInst()->AddActiveObject(m_diff.pObject);
		m_diff.pObject->SetCenterGridIndex(INVALID);
		m_diff.pObject->GetModelGroup()->SetEditState(sqr::EES_MOVING);

		// update hot
		CTObject * p = NULL;
		CVector3f v;
		DWORD dwGridIndexHot = CPicker::GetInst()->GetPickPos(&p,&v);
		pOperator->SetGridIndexHot(dwGridIndexHot);
		pOperator->SetHitPoint(*((CVector3f*)&v));
		pOperator->SetObjectHot(p);
	}
开发者ID:LaoZhongGu,项目名称:RushGame,代码行数:31,代码来源:CmdMoveObject.cpp

示例4: GPOS_ASSERT

//---------------------------------------------------------------------------
//	@function:
//		CXformGbAggWithMDQA2Join::PexprTransform
//
//	@doc:
//		Main transformation driver
//
//---------------------------------------------------------------------------
CExpression *
CXformGbAggWithMDQA2Join::PexprTransform
	(
	IMemoryPool *pmp,
	CExpression *pexpr
	)
{
	// protect against stack overflow during recursion
	GPOS_CHECK_STACK_SIZE;
	GPOS_ASSERT(NULL != pmp);
	GPOS_ASSERT(NULL != pexpr);

	COperator *pop = pexpr->Pop();
	if (COperator::EopLogicalGbAgg == pop->Eopid())
	{
		CExpression *pexprResult = PexprExpandMDQAs(pmp, pexpr);
		if (NULL != pexprResult)
		{
			return pexprResult;
		}
	}

	// recursively process child expressions
	const ULONG ulArity = pexpr->UlArity();
	DrgPexpr *pdrgpexprChildren = GPOS_NEW(pmp) DrgPexpr(pmp);
	for (ULONG ul = 0; ul < ulArity; ul++)
	{
		CExpression *pexprChild = PexprTransform(pmp, (*pexpr)[ul]);
		pdrgpexprChildren->Append(pexprChild);
	}

	pop->AddRef();
	return GPOS_NEW(pmp) CExpression(pmp, pop, pdrgpexprChildren);
}
开发者ID:HanumathRao,项目名称:gporca,代码行数:42,代码来源:CXformGbAggWithMDQA2Join.cpp

示例5: Pop

//---------------------------------------------------------------------------
//	@function:
//		CExpressionHandle::PcrsUsedColumns
//
//	@doc:
//		Return the columns used by a logical operator and all its scalar children
//
//---------------------------------------------------------------------------
CColRefSet *
CExpressionHandle::PcrsUsedColumns
	(
	IMemoryPool *pmp
	)
{
	COperator *pop = Pop();
	GPOS_ASSERT(pop->FLogical());

	CColRefSet *pcrs = GPOS_NEW(pmp) CColRefSet(pmp);

	// get columns used by the operator itself
	pcrs->Include(CLogical::PopConvert(pop)->PcrsLocalUsed());

	// get columns used by the scalar children
	const ULONG ulArity = UlArity();
	for (ULONG ul = 0; ul < ulArity; ul++)
	{
		if (FScalarChild(ul))
		{
			pcrs->Include(Pdpscalar(ul)->PcrsUsed());
		}
	}

	return pcrs;
}
开发者ID:HanumathRao,项目名称:gporca,代码行数:34,代码来源:CExpressionHandle.cpp

示例6: OperatorDeleteTileRegion

	void CToolHideTileRegionInView::OperatorDeleteTileRegion()
	{
		CTerrainMesh *pTerrain		= CMapEditApp::GetInst()->GetEditingMesh();
		COperator *pOperator		= CMapEditApp::GetInst()->GetOperator();
		int nHotGrid				= pOperator->GetGridIndexHot();
		const SGrid &grid			= pTerrain->GetGrid(nHotGrid);
		STileRegion  *pTileregion	= pTerrain->GetTileRegion(grid.dwBufferIndex);
		int nHotTileRegionIndex		= grid.dwBufferIndex;
		if( pTileregion )
		{
			invisiblePool::iterator iter = m_invisibleTileRegionIndexs.find(nHotTileRegionIndex);
			if ( iter != m_invisibleTileRegionIndexs.end() )
			{
				int nTileRegionIndex = iter->first;
				int nSubTileRegionIndex = -1;
				const subRegIndexPool subIndexs = iter->second;
				iter->second.erase(grid.bSubRenderUnitIndex);

				if( iter->second.empty() )
					m_invisibleTileRegionIndexs.erase(iter);
			}

			STileRenderRegionUnit *pRenderRegionUnit = pTileregion->vRenderRegionUnits[grid.bSubRenderUnitIndex];
			pRenderRegionUnit->bIsVisibleInView = true;
			pTerrain->SetTerrainNodeVisbileMark(nHotTileRegionIndex, grid.bSubRenderUnitIndex, true);
		}

		::SendMessage(m_hTileRegionView, WM_TILEREGIONVIEW_REFRESH,0,0);
	}
开发者ID:LaoZhongGu,项目名称:RushGame,代码行数:29,代码来源:ToolHideTileRegionInView.cpp

示例7: strMsg

//void CMaintenanceMenu::OnButton7(int iEvent, unsigned char * pEventData, int iDataLen)
//{
//	string strErr = "";
//
//	DBG_PRINT(("g_globalArg->m_curInvVol->m_ieno = %u", g_globalArg->m_curInvVol->m_ieno));
//	DBG_PRINT(("g_globalArg->m_curInvVol->m_remain = %u", g_globalArg->m_curInvVol->m_remain));
//	INT32 nOldCurNo = g_globalArg->m_curInvVol->m_ieno + 1 - 
//		g_globalArg->m_curInvVol->m_remain;
//	DBG_PRINT(("g_globalArg->m_curInvVol->m_ieno = %u", nOldCurNo));
//
//	if (g_globalArg->m_initFlag == 0)
//	{
//		strErr = "机器未初始化";
//		CaMsgBox::ShowMsg(strErr);
//		return ;
//	}
//
//	string strInvNo("");
//	INT32 status;
//	INT8 tmpstr[128];
//	UINT32 curInvNo;
//	CInvVol invVol;
//
//	DBG_ENTER("CDeptEditWin::DoActive()");
//	ReFresh();
//
//	CaMsgBox msgBox("新当前号:",CaMsgBox::MB_INPUT);
//	msgBox.SetInputType(CaInput::aINT);
//	msgBox.SetMaxInputLen(8);
//	while (1)
//	{
//		msgBox.ShowBox();
//		status = msgBox.m_iStatus;
//		strInvNo = (INT8 *)msgBox.GetInputContent();
//		if (status != OK_PRESSED || strInvNo != "")
//			break;
//
//		CaMsgBox::ShowMsg("请输入有效发票号");
//	}
//
//	if (status == OK_PRESSED)
//	{
//		curInvNo  = atoi(strInvNo.c_str());
//		DBG_PRINT(("curInvNo = %u", curInvNo));
//
//		if (curInvNo <= 0)
//		{
//			CaMsgBox::ShowMsg("当前发票号必须大于0");
//			this->ReFresh();
//			return;
//		}
//
//		DBG_PRINT(("m_InvStartNo = %u", g_globalArg->m_curInvVol->m_isno));
//		DBG_PRINT(("m_InvEndNo = %u", g_globalArg->m_curInvVol->m_ieno));
////		if((curInvNo < g_globalArg->m_curInvVol->m_InvStartNo)||
////			((curInvNo - g_globalArg->m_curInvVol->m_InvStartNo) >= MAX_INV_VOL_NUM))
//		if( curInvNo < g_globalArg->m_curInvVol->m_isno || 
//			curInvNo > g_globalArg->m_curInvVol->m_ieno)
//		{
//			CaMsgBox::ShowMsg("当前发票号必须属于当前卷");
//			this->ReFresh();
//			return;
//		}
//
//		DBG_PRINT(("nOldCurNo = u%", nOldCurNo));
//    	DBG_PRINT(("curInvNo = u%", curInvNo));
//		if (curInvNo <= nOldCurNo)
//		{
//			CaMsgBox::ShowMsg("不能向前更新");
//			this->ReFresh();
//			return;
//		}
//
//		//更新INV_VOL中的当前卷信息
//		string sqlstr= "";
//		INT32 errcode;
//		UINT32 nRemain = g_globalArg->m_curInvVol->m_ieno - curInvNo + 1;
//		
//		sprintf(tmpstr,"update INV_VOL set REMAIN = %u where CODE = '%s' and IS_NO = %u",
//			nRemain, g_globalArg->m_curInvVol->m_code.c_str(), 
//			g_globalArg->m_curInvVol->m_isno);
//		sqlstr=tmpstr;
//		invVol.SetSQL(sqlstr);
//		errcode = invVol.ExecuteSQL();
//		if (invVol.ExecuteSQL() != SQLITE_OK)
//		{
//			DBG_PRINT(("更新当前发票号错误 errcode=%d", errcode));
//			CaMsgBox::ShowMsg("更新当前发票号失败");
//			return;
//		}
//		g_globalArg->m_curInvVol->m_remain = nRemain;
//		CaMsgBox::ShowMsg("更新当前发票号成功");		
//	}
//}
void CMaintenanceMenu::OnButton7(int iEvent, unsigned char * pEventData, int iDataLen)
{
	string strMsg("");
	COperator oper;
	INT8 chValue[64];
	memset((void*)chValue, 0, sizeof(chValue));
//.........这里部分代码省略.........
开发者ID:xiongshaogang,项目名称:CJ_APE4000R_ZL_1.0000,代码行数:101,代码来源:MaintenanceMenu.cpp

示例8: FOptimizeMotion

//---------------------------------------------------------------------------
//	@function:
//		COptimizationContext::FOptimize
//
//	@doc:
//		Return true if given group expression should be optimized under
//		given context
//
//---------------------------------------------------------------------------
BOOL
COptimizationContext::FOptimize
	(
	IMemoryPool *mp,
	CGroupExpression *pgexprParent,
	CGroupExpression *pgexprChild,
	COptimizationContext *pocChild,
	ULONG ulSearchStages
	)
{
	COperator *pop = pgexprChild->Pop();

	if (CUtils::FPhysicalMotion(pop))
	{
		return FOptimizeMotion(mp, pgexprParent, pgexprChild, pocChild, ulSearchStages);
	}

	if (COperator::EopPhysicalSort == pop->Eopid())
	{
		return FOptimizeSort(mp, pgexprParent, pgexprChild, pocChild, ulSearchStages);
	}

	if (CUtils::FPhysicalAgg(pop))
	{
		return FOptimizeAgg(mp, pgexprParent, pgexprChild, pocChild, ulSearchStages);
	}

	if (CUtils::FNLJoin(pop))
	{
		return FOptimizeNLJoin(mp, pgexprParent, pgexprChild, pocChild, ulSearchStages);
	}

	return true;
}
开发者ID:b-xiang,项目名称:gporca,代码行数:43,代码来源:COptimizationContext.cpp

示例9: Render

	void CToolHideTileRegionInView::Render()
	{
		if( m_bShow )
		{
			invisiblePool::iterator beg = m_invisibleTileRegionIndexs.begin();
			invisiblePool::iterator end = m_invisibleTileRegionIndexs.end();
			for ( beg; beg!= end; ++beg )
			{
				int nTileRegionIndex = beg->first;
				int nSubTileRegionIndex = -1;
				const subRegIndexPool subIndexs = beg->second;
				for ( subRegIndexPool::const_iterator iter = subIndexs.begin(); iter != subIndexs.end(); ++ iter )
				{
					nSubTileRegionIndex = *iter;
					this->RenderOneTileRegion(nTileRegionIndex, nSubTileRegionIndex, m_pTileRegionSetTexture);
				}
			}
		}

		CTerrainMesh *pTerrain = CMapEditApp::GetInst()->GetEditingMesh();
		COperator *pOperator   = CMapEditApp::GetInst()->GetOperator();
		int nHotGrid			= pOperator->GetGridIndexHot();
		SGrid &grid				= pTerrain->GetGrid(nHotGrid);
		int nHotTileRegionIndex = grid.dwBufferIndex;
		int nSubTileRegionIndex = grid.bSubRenderUnitIndex;
		this->RenderOneTileRegion(nHotTileRegionIndex, nSubTileRegionIndex, m_pTileRegionLockTexture);
	}
开发者ID:LaoZhongGu,项目名称:RushGame,代码行数:27,代码来源:ToolHideTileRegionInView.cpp

示例10: GPOS_ASSERT

//---------------------------------------------------------------------------
//	@function:
//		CNormalizer::PushThruUnaryWithScalarChild
//
//	@doc:
//		Push a conjunct through a unary operator with scalar child
//
//---------------------------------------------------------------------------
void
CNormalizer::PushThruUnaryWithScalarChild
	(
	IMemoryPool *pmp,
	CExpression *pexprLogical,
	CExpression *pexprConj,
	CExpression **ppexprResult
	)
{
	GPOS_ASSERT(NULL != pexprLogical);
	GPOS_ASSERT(2 == pexprLogical->UlArity());
	GPOS_ASSERT(NULL != pexprConj);
	GPOS_ASSERT(NULL != ppexprResult);

	// get logical and scalar children
	CExpression *pexprLogicalChild = (*pexprLogical)[0];
	CExpression *pexprScalarChild = (*pexprLogical)[1];

	// push conjuncts through the logical child
	CExpression *pexprNewLogicalChild = NULL;
	DrgPexpr *pdrgpexprUnpushable = NULL;

	// break scalar expression to conjuncts
	DrgPexpr *pdrgpexprConjuncts = CPredicateUtils::PdrgpexprConjuncts(pmp, pexprConj);

	PushThru(pmp, pexprLogicalChild, pdrgpexprConjuncts, &pexprNewLogicalChild, &pdrgpexprUnpushable);
	pdrgpexprConjuncts->Release();

	// create a new logical expression based on recursion results
	COperator *pop = pexprLogical->Pop();
	pop->AddRef();
	pexprScalarChild->AddRef();
	CExpression *pexprNewLogical = GPOS_NEW(pmp) CExpression(pmp, pop, pexprNewLogicalChild, pexprScalarChild);
	*ppexprResult = PexprSelect(pmp, pexprNewLogical, pdrgpexprUnpushable);
}
开发者ID:godouxm,项目名称:gporca,代码行数:43,代码来源:CNormalizer.cpp

示例11: GPOS_ASSERT

//---------------------------------------------------------------------------
//	@function:
//		CDecorrelator::FProcessMaxOneRow
//
//	@doc:
//		Decorrelate max one row operator
//
//---------------------------------------------------------------------------
BOOL
CDecorrelator::FProcessMaxOneRow
	(
	IMemoryPool *pmp,
	CExpression *pexpr,
	BOOL fEqualityOnly,
	CExpression **ppexprDecorrelated,
	DrgPexpr *pdrgpexprCorrelations
	)
{
	GPOS_ASSERT(NULL != pexpr);

	COperator *pop = pexpr->Pop();
	GPOS_ASSERT(COperator::EopLogicalMaxOneRow == pop->Eopid());

	// fail if MaxOneRow expression has outer references
	if (CUtils::FHasOuterRefs(pexpr))
	{
		return false;
	}

	// decorrelate relational child
	CExpression *pexprRelational = NULL;
	if (!FProcess(pmp, (*pexpr)[0], fEqualityOnly, &pexprRelational, pdrgpexprCorrelations))
	{
		GPOS_ASSERT(NULL == pexprRelational);
		return false;
	}

	// assemble new project
	pop->AddRef();
	*ppexprDecorrelated = GPOS_NEW(pmp) CExpression(pmp, pop, pexprRelational);

	return true;
}
开发者ID:HanumathRao,项目名称:gporca,代码行数:43,代码来源:CDecorrelator.cpp

示例12: GPOS_ASSERT

//---------------------------------------------------------------------------
//	@function:
//		CXformSubqJoin2Apply::PexprReplaceSubqueries
//
//	@doc:
//		Replace subqueries with scalar identifiers based on given map
//
//---------------------------------------------------------------------------
CExpression *
CXformSubqJoin2Apply::PexprReplaceSubqueries
	(
	IMemoryPool *mp,
	CExpression *pexprScalar,
	ExprToColRefMap *phmexprcr
	)
{
	GPOS_CHECK_STACK_SIZE;
	GPOS_ASSERT(NULL != pexprScalar);
	GPOS_ASSERT(NULL != phmexprcr);

	CColRef *colref = phmexprcr->Find(pexprScalar);
	if (NULL != colref)
	{
		// look-up succeeded on root operator, we return here
		return CUtils::PexprScalarIdent(mp, colref);
	}

	// recursively process children
	const ULONG arity = pexprScalar->Arity();
	CExpressionArray *pdrgpexprChildren = GPOS_NEW(mp) CExpressionArray(mp);
	for (ULONG ul = 0; ul < arity; ul++)
	{
		CExpression *pexprChild = PexprReplaceSubqueries(mp, (*pexprScalar)[ul], phmexprcr);
		pdrgpexprChildren->Append(pexprChild);
	}

	COperator *pop = pexprScalar->Pop();
	pop->AddRef();

	return GPOS_NEW(mp) CExpression(mp, pop, pdrgpexprChildren);
}
开发者ID:b-xiang,项目名称:gporca,代码行数:41,代码来源:CXformSubqJoin2Apply.cpp

示例13: COperator

COperator * CSceneManager::AddNodeOperator(HWND hResSetView, ISceneNode * pParent)
{
    if ( !pParent )
        pParent = this;

    COperator * pNode = new COperator(pParent);
    pNode->Create(hResSetView);
    return pNode;
}
开发者ID:svn2github,项目名称:ybtx,代码行数:9,代码来源:Scene.cpp

示例14: OnEvent

	void CToolMainPlayer::OnEvent(const CMsg& msg)
	{
		COperator * pOperator = CMapEditApp::GetInst()->GetOperator();
		CTerrainMesh * pTerrainMesh = CMapEditApp::GetInst()->GetEditingMesh();

		switch ( msg.msgSource )
		{
		case MGS_MOUSEMSG:
			{
				if( msg.msgType.key_type == MGT_MOUSE_LBNDOWN )
				{
					if ( m_ani != "" && m_ani != "run01" )
					{
						if( !m_pMainPlayer->SetNextAnimation("run01",FramePair(0,-1),true,200,1.0f) )
						{
							if( m_pMainPlayer->SetNextAnimation("run01_y",FramePair(0,-1),true,200,1.0f) )
								m_ani = "run01_y";
						}
						else
							m_ani = "run01";
					}
					else
					{
						m_pMainPlayer->SetNextAnimation("stand01",FramePair(0,-1),true,200,1.0f) ;
					}

					if (  pTerrainMesh->IsValid(pOperator->GetGridIndexHot()) )
					{
						m_bStop = false;

						m_vEnd = pOperator->GetHitPoint();

						//实时更新区域值
						CSceneRegionMgr::GetInst()->CalcRegionLightByRegionDistance(m_vEnd);

						m_vStart = m_vPos;

						m_fRoad = (m_vEnd-m_vStart).Mag();

						m_vDir = m_vEnd - m_vPos;
						m_vDir.y = 0.0f;

						m_vDir.normalize();

						m_mat._11 = m_vDir.z;
						m_mat._13 = -m_vDir.x;

						m_mat._31 = m_vDir.x;
						m_mat._33 = m_vDir.z;
					}
				}
			}
			break;
		}
	}
开发者ID:LaoZhongGu,项目名称:RushGame,代码行数:55,代码来源:ToolMainPlayer.cpp

示例15: GPOS_ASSERT

//---------------------------------------------------------------------------
//	@function:
//		CExpressionHandle::DerivePlanProps
//
//	@doc:
//		Derive the properties of the plan carried by attached cost context
//
//---------------------------------------------------------------------------
void
CExpressionHandle::DerivePlanProps
	(
	CDrvdPropCtxtPlan *pdpctxtplan
	)
{
	GPOS_ASSERT(NULL != m_pcc);
	GPOS_ASSERT(NULL != m_pgexpr);
	GPOS_ASSERT(NULL == m_pdrgpdp);
	GPOS_ASSERT(NULL == m_pdp);
	GPOS_CHECK_ABORT;

	// check if properties have been already derived
	if (NULL != m_pcc->Pdpplan())
	{
		CopyCostCtxtProps();
		return;
	}
	GPOS_ASSERT(NULL != pdpctxtplan);

	// extract children's properties
	m_pdrgpdp = GPOS_NEW(m_pmp) DrgPdp(m_pmp);
	const ULONG ulArity = m_pcc->Pdrgpoc()->UlLength();
	for (ULONG ul = 0; ul < ulArity; ul++)
	{
		COptimizationContext *pocChild = (*m_pcc->Pdrgpoc())[ul];
		CDrvdPropPlan *pdpplan = pocChild->PccBest()->Pdpplan();
		GPOS_ASSERT(NULL != pdpplan);

		pdpplan->AddRef();
		m_pdrgpdp->Append(pdpplan);

		// add child props to derivation context
		CDrvdPropCtxt::AddDerivedProps(pdpplan, pdpctxtplan);
	}

	COperator *pop = m_pgexpr->Pop();
	if (COperator::EopPhysicalCTEConsumer == pop->Eopid())
	{
		// copy producer plan properties to passed derived plan properties context
		ULONG ulCTEId = CPhysicalCTEConsumer::PopConvert(pop)->UlCTEId();
		CDrvdPropPlan *pdpplan = m_pcc->Poc()->Prpp()->Pcter()->Pdpplan(ulCTEId);
		if (NULL != pdpplan)
		{
			pdpctxtplan->CopyCTEProducerProps(pdpplan, ulCTEId);
		}
	}

	// set the number of expected partition selectors in the context
	pdpctxtplan->SetExpectedPartitionSelectors(pop, m_pcc);

	// create/derive local properties
	m_pdp = Pop()->PdpCreate(m_pmp);
	m_pdp->Derive(m_pmp, *this, pdpctxtplan);
}
开发者ID:HanumathRao,项目名称:gporca,代码行数:63,代码来源:CExpressionHandle.cpp


注:本文中的COperator类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。