-
由 Bhuvnesh Chaudhary 提交于
- Before building Index object (IMDIndex), we build LogicalIndexes via calling `gpdb::Plgidx(oidRel)` in which a partition tables is traversed and index information (such as logicalIndexOid, nColumns, indexKeys, indPred, indExprs, indIsUnique, partCons, defaultLevels) is captured. - For Indexes which are available on all the partitions partCons and defaultLevels are NULL/empty. - Later in `CTranslatorRelcacheToDXL::PmdindexPartTable` to build Index object, we use the derived LogicalIndexes information and populates the array holding the levels on which default partitions exists. But since defaultLevels is NIL in this case, pdrgpulDefaultLevels is set to empty i,e `default partitions on levels: {}` - This causes an issue while trying to build the propagation expression, as because of wrong number of default partitions on level we mark the scan as partial and tries to construct a test propagation expression instead of a const propagation expression. - This patch fixes the issue by marking the default partitions on levels for index equal to the default partitions on levels for the part relation if the index exists on all the parts. Signed-off-by: NJemish Patel <jpatel@pivotal.io>
e0e8703e