On Mon, Aug 9, 2021 at 9:06 AM David G. Johnston <david.g.johns...@gmail.com>
wrote:

> On Mon, Aug 9, 2021 at 8:02 AM PG Doc comments form <
> nore...@postgresql.org> wrote:
>
>> Hello, on page
>> https://www.postgresql.org/docs/current/row-estimation-examples.html -
>> there
>> is a example:
>> selectivity = (1 - null_frac1) * (1 - null_frac2) * min(1/num_distinct1,
>> 1/num_distinct2)
>>             = (1 - 0) * (1 - 0) / max(10000, 10000)
>>             = 0.0001
>> in the first string  " * min" and in the second " / max"
>> as I understand it isn't correct.
>>
>
> Division is just multiplication by the reciprocal so while the
> presentation here is inconsistent it is correct.  Likewise, the larger a
> number the smaller its reciprocal, so the change from min to max also
> works.
>
>
FWIW this used to be presented with the calculation and formula in sync,
but the original had a simple typo in the calculation.  When the typo got
fixed back in December of 2007 [1] the author of the patch simplified the
calculation at the same time.  I suggest we update the formula line to
match the calculation presented.

David J.

1.
https://github.com/postgres/postgres/commit/f5678e8e07563e34ae4dc832546977d13edcd665

Reply via email to