diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/optimizer/path/clausesel.c | 3 | ||||
-rw-r--r-- | src/backend/statistics/dependencies.c | 8 |
2 files changed, 5 insertions, 6 deletions
diff --git a/src/backend/optimizer/path/clausesel.c b/src/backend/optimizer/path/clausesel.c index a3ebe10592d..37a735b06bb 100644 --- a/src/backend/optimizer/path/clausesel.c +++ b/src/backend/optimizer/path/clausesel.c @@ -164,8 +164,7 @@ clauselist_selectivity_simple(PlannerInfo *root, * directly to clause_selectivity(). None of what we might do below is * relevant. */ - if ((list_length(clauses) == 1) && - bms_num_members(estimatedclauses) == 0) + if (list_length(clauses) == 1 && bms_is_empty(estimatedclauses)) return clause_selectivity(root, (Node *) linitial(clauses), varRelid, jointype, sjinfo); diff --git a/src/backend/statistics/dependencies.c b/src/backend/statistics/dependencies.c index 3e37e2758ca..4e30abb6743 100644 --- a/src/backend/statistics/dependencies.c +++ b/src/backend/statistics/dependencies.c @@ -1246,7 +1246,7 @@ dependencies_clauselist_selectivity(PlannerInfo *root, * of clauses. We must return 1.0 so the calling function's selectivity is * unaffected. */ - if (bms_num_members(clauses_attnums) < 2) + if (bms_membership(clauses_attnums) != BMS_MULTIPLE) { bms_free(clauses_attnums); pfree(list_attnums); @@ -1273,18 +1273,18 @@ dependencies_clauselist_selectivity(PlannerInfo *root, { StatisticExtInfo *stat = (StatisticExtInfo *) lfirst(l); Bitmapset *matched; - int num_matched; + BMS_Membership membership; /* skip statistics that are not of the correct type */ if (stat->kind != STATS_EXT_DEPENDENCIES) continue; matched = bms_intersect(clauses_attnums, stat->keys); - num_matched = bms_num_members(matched); + membership = bms_membership(matched); bms_free(matched); /* skip objects matching fewer than two attributes from clauses */ - if (num_matched < 2) + if (membership != BMS_MULTIPLE) continue; func_dependencies[nfunc_dependencies] |