Re: BUG #16807: Assert failed in postgres_fdw/estimate_path_cost_size with an empty foreign table
Etsuro Fujita <etsuro.fujita@gmail.com>
From: Etsuro Fujita <etsuro.fujita@gmail.com>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: exclusion@gmail.com, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2021-02-04T09:56:22Z
Lists: pgsql-bugs
Attachments
- 0001-postgres_fdw-Fix-assertion-in-estimate_path_cost_siz.patch (application/octet-stream) patch 0001
On Thu, Jan 14, 2021 at 1:30 PM Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote: > At Thu, 14 Jan 2021 11:56:08 +0900, Etsuro Fujita <etsuro.fujita@gmail.com> wrote in > > 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. Ok, thanks for reviewing! I tweaked a regression test comment a little bit and added the commit message. Attached is an updated patch. I’ll commit the patch. Best regards, Etsuro Fujita
Commits
-
postgres_fdw: Fix assertion in estimate_path_cost_size().
- 984384129bb8 13.2 landed
- 5e7fa189ee92 14.0 landed