diff --git a/src/backend/optimizer/path/costsize.c b/src/backend/optimizer/path/costsize.c index ef475d95a1..26f26d6a40 100644 --- a/src/backend/optimizer/path/costsize.c +++ b/src/backend/optimizer/path/costsize.c @@ -4033,11 +4033,12 @@ final_cost_hashjoin(PlannerInfo *root, HashPath *path, thismcvfreq = restrictinfo->left_mcvfreq; } - if (innerbucketsize > thisbucketsize) - innerbucketsize = thisbucketsize; - if (innermcvfreq > thismcvfreq) - innermcvfreq = thismcvfreq; + innerbucketsize *= thisbucketsize; + innermcvfreq *= thismcvfreq; } + + if (innerbucketsize > virtualbuckets) + innerbucketsize = 1.0 / virtualbuckets; } /*