//--------------------------------------------------------------------------- // @function: // CLogicalCTEAnchor::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalCTEAnchor::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfCTEAnchor2Sequence); (void) pxfs->FExchangeSet(CXform::ExfCTEAnchor2TrivialSelect); return pxfs; }
//--------------------------------------------------------------------------- // @function: // CLogicalLimit::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalLimit::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfImplementLimit); (void) pxfs->FExchangeSet(CXform::ExfSplitLimit); return pxfs; }
//--------------------------------------------------------------------------- // @function: // CLogicalTVF::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalTVF::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfUnnestTVF); (void) pxfs->FExchangeSet(CXform::ExfImplementTVF); (void) pxfs->FExchangeSet(CXform::ExfImplementTVFNoArgs); return pxfs; }
//--------------------------------------------------------------------------- // @function: // CLogicalGbAggDeduplicate::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalGbAggDeduplicate::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfPushGbDedupBelowJoin); (void) pxfs->FExchangeSet(CXform::ExfSplitGbAggDedup); (void) pxfs->FExchangeSet(CXform::ExfGbAggDedup2HashAggDedup); (void) pxfs->FExchangeSet(CXform::ExfGbAggDedup2StreamAggDedup); return pxfs; }
//--------------------------------------------------------------------------- // @function: // CLogicalLeftSemiApply::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalLeftSemiApply::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfLeftSemiApply2LeftSemiJoin); (void) pxfs->FExchangeSet(CXform::ExfLeftSemiApplyWithExternalCorrs2InnerJoin); (void) pxfs->FExchangeSet(CXform::ExfLeftSemiApply2LeftSemiJoinNoCorrelations); return pxfs; }
//--------------------------------------------------------------------------- // @function: // CLogicalInnerApply::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalInnerApply::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfInnerApply2InnerJoin); (void) pxfs->FExchangeSet(CXform::ExfInnerApply2InnerJoinNoCorrelations); (void) pxfs->FExchangeSet(CXform::ExfInnerApplyWithOuterKey2InnerJoin); return pxfs; }
//--------------------------------------------------------------------------- // @function: // CLogicalFullOuterJoin::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalFullOuterJoin::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfExpandFullOuterJoin); return pxfs; }
//--------------------------------------------------------------------------- // @function: // CLogicalDifferenceAll::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalDifferenceAll::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfDifferenceAll2LeftAntiSemiJoin); return pxfs; }
//--------------------------------------------------------------------------- // @function: // CLogicalUnion::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalUnion::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfUnion2UnionAll); return pxfs; }
//--------------------------------------------------------------------------- // @function: // CLogicalInnerCorrelatedApply::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalInnerCorrelatedApply::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfImplementInnerCorrelatedApply); return pxfs; }
//--------------------------------------------------------------------------- // @function: // CLogicalGet::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalGet::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfGet2TableScan); return pxfs; }
//--------------------------------------------------------------------------- // @function: // CLogicalLeftSemiJoin::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalLeftSemiJoin::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfSemiJoinSemiJoinSwap); (void) pxfs->FExchangeSet(CXform::ExfSemiJoinAntiSemiJoinSwap); (void) pxfs->FExchangeSet(CXform::ExfSemiJoinAntiSemiJoinNotInSwap); (void) pxfs->FExchangeSet(CXform::ExfSemiJoinInnerJoinSwap); (void) pxfs->FExchangeSet(CXform::ExfLeftSemiJoin2InnerJoin); (void) pxfs->FExchangeSet(CXform::ExfLeftSemiJoin2InnerJoinUnderGb); (void) pxfs->FExchangeSet(CXform::ExfLeftSemiJoin2CrossProduct); (void) pxfs->FExchangeSet(CXform::ExfLeftSemiJoin2NLJoin); (void) pxfs->FExchangeSet(CXform::ExfLeftSemiJoin2HashJoin); return pxfs; }
//--------------------------------------------------------------------------- // @function: // CLogicalSelect::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalSelect::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfSelect2Apply); (void) pxfs->FExchangeSet(CXform::ExfInlineCTEConsumerUnderSelect); (void) pxfs->FExchangeSet(CXform::ExfPushGbWithHavingBelowJoin); (void) pxfs->FExchangeSet(CXform::ExfSelect2IndexGet); (void) pxfs->FExchangeSet(CXform::ExfSelect2DynamicIndexGet); (void) pxfs->FExchangeSet(CXform::ExfSelect2PartialDynamicIndexGet); (void) pxfs->FExchangeSet(CXform::ExfSelect2BitmapBoolOp); (void) pxfs->FExchangeSet(CXform::ExfSelect2DynamicBitmapBoolOp); (void) pxfs->FExchangeSet(CXform::ExfSimplifySelectWithSubquery); (void) pxfs->FExchangeSet(CXform::ExfSelect2Filter); return pxfs; }
//--------------------------------------------------------------------------- // @function: // CLogicalInnerJoin::PxfsCandidates // // @doc: // Get candidate xforms // //--------------------------------------------------------------------------- CXformSet * CLogicalInnerJoin::PxfsCandidates ( IMemoryPool *pmp ) const { CXformSet *pxfs = GPOS_NEW(pmp) CXformSet(pmp); (void) pxfs->FExchangeSet(CXform::ExfInnerJoin2NLJoin); (void) pxfs->FExchangeSet(CXform::ExfInnerJoin2HashJoin); (void) pxfs->FExchangeSet(CXform::ExfSubqJoin2Apply); (void) pxfs->FExchangeSet(CXform::ExfInnerJoin2IndexGetApply); (void) pxfs->FExchangeSet(CXform::ExfInnerJoin2DynamicIndexGetApply); (void) pxfs->FExchangeSet(CXform::ExfInnerJoin2PartialDynamicIndexGetApply); (void) pxfs->FExchangeSet(CXform::ExfInnerJoin2BitmapIndexGetApply); (void) pxfs->FExchangeSet(CXform::ExfInnerJoinWithInnerSelect2IndexGetApply); (void) pxfs->FExchangeSet(CXform::ExfInnerJoinWithInnerSelect2DynamicIndexGetApply); (void) pxfs->FExchangeSet(CXform::ExfInnerJoinWithInnerSelect2PartialDynamicIndexGetApply); (void) pxfs->FExchangeSet(CXform::ExfInnerJoin2DynamicBitmapIndexGetApply); (void) pxfs->FExchangeSet(CXform::ExfInnerJoinWithInnerSelect2BitmapIndexGetApply); (void) pxfs->FExchangeSet(CXform::ExfInnerJoinWithInnerSelect2DynamicBitmapIndexGetApply); (void) pxfs->FExchangeSet(CXform::ExfJoinCommutativity); (void) pxfs->FExchangeSet(CXform::ExfJoinAssociativity); (void) pxfs->FExchangeSet(CXform::ExfInnerJoinSemiJoinSwap); (void) pxfs->FExchangeSet(CXform::ExfInnerJoinAntiSemiJoinSwap); (void) pxfs->FExchangeSet(CXform::ExfInnerJoinAntiSemiJoinNotInSwap); return pxfs; }