This is an automated email from the ASF dual-hosted git repository. maxyang pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/cloudberry.git
commit f5bdc807a75adeb0b2b18df184047e1f45345f17 Author: David Kimura <[email protected]> AuthorDate: Wed Aug 31 21:27:24 2022 +0000 Remove unused function PdxlnBitmapIndexPathForChildPart() Commit 3ea20ad8efda added function PdxlnBitmapIndexProbeForChildPart() and commit 2826c2098a50 removed usage of it. Rather than refactor away the "specialness" just delete it. --- .../include/gpopt/translate/CTranslatorExprToDXL.h | 10 -- .../src/translate/CTranslatorExprToDXL.cpp | 138 --------------------- 2 files changed, 148 deletions(-) diff --git a/src/backend/gporca/libgpopt/include/gpopt/translate/CTranslatorExprToDXL.h b/src/backend/gporca/libgpopt/include/gpopt/translate/CTranslatorExprToDXL.h index aeea672aa9..69819e1861 100644 --- a/src/backend/gporca/libgpopt/include/gpopt/translate/CTranslatorExprToDXL.h +++ b/src/backend/gporca/libgpopt/include/gpopt/translate/CTranslatorExprToDXL.h @@ -536,16 +536,6 @@ private: const CColRefArray *root_colrefs, CExpression *pred); - CDXLNode *PdxlnBitmapIndexProbeForChildPart( - const ColRefToUlongMap *root_col_mapping, - const CColRefArray *part_colrefs, const CColRefArray *root_colrefs, - const IMDRelation *part, CExpression *pexprBitmapIndexProbe); - - CDXLNode *PdxlnBitmapIndexPathForChildPart( - const ColRefToUlongMap *root_col_mapping, - const CColRefArray *part_colrefs, const CColRefArray *root_colrefs, - const IMDRelation *part, CExpression *pexprBitmapIndexPath); - // translate a project list expression into a DXL proj list node // according to the order specified in the dynamic array CDXLNode *PdxlnProjList(const CExpression *pexprProjList, diff --git a/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp b/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp index 813b3550be..27da8c6fca 100644 --- a/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp +++ b/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp @@ -975,9 +975,6 @@ CTranslatorExprToDXL::PdxlnIndexOnlyScan(CExpression *pexprIndexOnlyScan, // Create a DXL scalar bitmap index probe from an optimizer // scalar bitmap index probe operator. // -// GPDB_12_MERGE_FIXME: whenever we modify this function, we may -// as well consider updating PdxlnBitmapIndexProbeForChildPart(). -// //--------------------------------------------------------------------------- CDXLNode * CTranslatorExprToDXL::PdxlnBitmapIndexProbe(CExpression *pexprBitmapIndexProbe) @@ -6885,141 +6882,6 @@ CTranslatorExprToDXL::PdxlnCondForChildPart( return pdxlnCond; } -//--------------------------------------------------------------------------- -// @function: -// CTranslatorExprToDXL::PdxlnBitmapIndexPathForChildPart -// -// @doc: -// Construct a DXL BitmapTableScan's bitmap index path child -// DLX node for a child partition. -// -//--------------------------------------------------------------------------- -CDXLNode * -CTranslatorExprToDXL::PdxlnBitmapIndexPathForChildPart( - const ColRefToUlongMap *root_col_mapping, const CColRefArray *part_colrefs, - const CColRefArray *root_colrefs, const IMDRelation *part, - CExpression *pexprBitmapIndexPath) -{ - GPOS_CHECK_STACK_SIZE; - - switch (pexprBitmapIndexPath->Pop()->Eopid()) - { - case COperator::EopScalarBitmapIndexProbe: - return PdxlnBitmapIndexProbeForChildPart( - root_col_mapping, part_colrefs, root_colrefs, part, - pexprBitmapIndexPath); - case COperator::EopScalarBitmapBoolOp: - { - GPOS_ASSERT(nullptr != pexprBitmapIndexPath); - GPOS_ASSERT(2 == pexprBitmapIndexPath->Arity()); - - CScalarBitmapBoolOp *popBitmapBoolOp = - CScalarBitmapBoolOp::PopConvert(pexprBitmapIndexPath->Pop()); - CExpression *pexprLeft = (*pexprBitmapIndexPath)[0]; - CExpression *pexprRight = (*pexprBitmapIndexPath)[1]; - - CDXLNode *dxlnode_left = PdxlnBitmapIndexPathForChildPart( - root_col_mapping, part_colrefs, root_colrefs, part, pexprLeft); - CDXLNode *dxlnode_right = PdxlnBitmapIndexPathForChildPart( - root_col_mapping, part_colrefs, root_colrefs, part, pexprRight); - - IMDId *mdid_type = popBitmapBoolOp->MdidType(); - mdid_type->AddRef(); - - CDXLScalarBitmapBoolOp::EdxlBitmapBoolOp edxlbitmapop = - CDXLScalarBitmapBoolOp::EdxlbitmapAnd; - - if (CScalarBitmapBoolOp::EbitmapboolOr == - popBitmapBoolOp->Ebitmapboolop()) - { - edxlbitmapop = CDXLScalarBitmapBoolOp::EdxlbitmapOr; - } - - return GPOS_NEW(m_mp) CDXLNode( - m_mp, - GPOS_NEW(m_mp) - CDXLScalarBitmapBoolOp(m_mp, mdid_type, edxlbitmapop), - dxlnode_left, dxlnode_right); - } - default: - GPOS_RAISE(gpopt::ExmaGPOPT, gpopt::ExmiUnsupportedOp, - pexprBitmapIndexPath->Pop()->SzId()); - } -} - -//--------------------------------------------------------------------------- -// @function: -// CTranslatorExprToDXL::PdxlnBitmapIndexProbeForChildPart -// -// @doc: -// Create a DXL scalar bitmap index probe from an optimizer -// scalar bitmap index probe operator for a child partition. -// -// GPDB_12_MERGE_FIXME: this function should always keep parity -// with PdxlnBitmapIndexProbe(). We did not extract the duplicate -// code into a common function because the handlings for child -// partition are also all over this function. -//--------------------------------------------------------------------------- -CDXLNode * -CTranslatorExprToDXL::PdxlnBitmapIndexProbeForChildPart( - const ColRefToUlongMap *root_col_mapping, const CColRefArray *part_colrefs, - const CColRefArray *root_colrefs, const IMDRelation *part, - CExpression *pexprBitmapIndexProbe) -{ - GPOS_ASSERT(nullptr != pexprBitmapIndexProbe); - CScalarBitmapIndexProbe *pop = - CScalarBitmapIndexProbe::PopConvert(pexprBitmapIndexProbe->Pop()); - - // create index descriptor - CIndexDescriptor *pindexdesc = pop->Pindexdesc(); - IMDId *pmdidIndex = pindexdesc->MDId(); - - // construct set of child indexes from parent list of child indexes - const IMDIndex *md_index = m_pmda->RetrieveIndex(pmdidIndex); - IMdIdArray *child_indexes = md_index->ChildIndexMdids(); - - MdidHashSet *child_index_mdids_set = GPOS_NEW(m_mp) MdidHashSet(m_mp); - for (ULONG ul = 0; ul < child_indexes->Size(); ul++) - { - (*child_indexes)[ul]->AddRef(); - child_index_mdids_set->Insert((*child_indexes)[ul]); - } - - CDXLIndexDescr *dxl_index_descr = PdxlnIndexDescForPart( - m_mp, child_index_mdids_set, part, pindexdesc->Name().Pstr()); - - child_index_mdids_set->Release(); - - CDXLScalarBitmapIndexProbe *dxl_op = - GPOS_NEW(m_mp) CDXLScalarBitmapIndexProbe(m_mp, dxl_index_descr); - CDXLNode *pdxlnBitmapIndexProbe = GPOS_NEW(m_mp) CDXLNode(m_mp, dxl_op); - - // translate index predicates - CExpression *pexprCond = (*pexprBitmapIndexProbe)[0]; - CDXLNode *pdxlnIndexCondList = GPOS_NEW(m_mp) - CDXLNode(m_mp, GPOS_NEW(m_mp) CDXLScalarIndexCondList(m_mp)); - CExpressionArray *pdrgpexprConds = - CPredicateUtils::PdrgpexprConjuncts(m_mp, pexprCond); - const ULONG length = pdrgpexprConds->Size(); - for (ULONG ul = 0; ul < length; ul++) - { - CExpression *pexprIndexCond = (*pdrgpexprConds)[ul]; - CDXLNode *pdxlnIndexCond = PdxlnCondForChildPart( - root_col_mapping, part_colrefs, root_colrefs, pexprIndexCond); - pdxlnIndexCondList->AddChild(pdxlnIndexCond); - } - pdrgpexprConds->Release(); - pdxlnBitmapIndexProbe->AddChild(pdxlnIndexCondList); - -#ifdef GPOS_DEBUG - pdxlnBitmapIndexProbe->GetOperator()->AssertValid( - pdxlnBitmapIndexProbe, false /*validate_children*/); -#endif - - return pdxlnBitmapIndexProbe; -} - - //--------------------------------------------------------------------------- // @function: // CTranslatorExprToDXL::PdxlnProjList --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
