On Mon, Nov 3, 2025 at 2:58 PM Kuntal Ghosh <kuntalghosh.2007@gmail.com> wrote:
> On Mon, Nov 3, 2025 at 11:22 AM PG Bug reporting form <noreply@postgresql.org> wrote:
>> Server crashes with assertion failure:
>> TRAP: FailedAssertion("childrel->rows > 0", File: "allpaths.c", Line: 1983)
>>
>> To fix the issue, we can replace the direct division with
>> clamp_row_est(childrel->rows) to safely handle zero, and remove the
>> incorrect assertion:
>>
>> -   Assert(childrel->rows > 0);
>> -   path_fraction /= childrel->rows;
>> +   path_fraction /= clamp_row_est(childrel->rows);
>>
> Added a patch with the proposed fix and regression test.
Thanks for the report -- that's a good catch.  However, I don't think
we should use childrel->rows to calculate the fraction in the first
place.  It would be better to use cheapest_total->rows instead.
- Richard