Re: BUG #16807: Assert failed in postgres_fdw/estimate_path_cost_size with an empty foreign table
Kyotaro Horiguchi <horikyota.ntt@gmail.com>
From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
To: etsuro.fujita@gmail.com
Cc: exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2021-01-14T04:30:24Z
Lists: pgsql-bugs
At Thu, 14 Jan 2021 11:56:08 +0900, Etsuro Fujita <etsuro.fujita@gmail.com> wrote in > On Wed, Jan 6, 2021 at 12:15 PM Etsuro Fujita <etsuro.fujita@gmail.com> wrote: > > Reproduced. Will look into this closely. > > If foreignrel->tuples is set to zero, the retrieved_rows estimate will > also be set to zero, so the assertion pointed out upthread is not > correct. I think I mistakenly assumed that foreignrel->tuples would > have been forced to be at least one row, like foreignrel->rows, before > we get to estimate_path_cost_size(), which is not correct. > > To fix, I think it would be better to adjust the assertion accordingly > than removing it, since it was added to make sure that the > retrieved_rows estimate is set to a sensible value. Attached is a > patch for that. I added a simpler test case as well. FWIW I drew the same conclusion. regards. -- Kyotaro Horiguchi NTT Open Source Software Center
Commits
-
postgres_fdw: Fix assertion in estimate_path_cost_size().
- 984384129bb8 13.2 landed
- 5e7fa189ee92 14.0 landed