Re: BUG #19037: Planner fails on estimating array length with "no relation entry" error
Richard Guo <guofenglinux@gmail.com>
From: Richard Guo <guofenglinux@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2025-09-03T00:42:34Z
Lists: pgsql-bugs
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix planner error when estimating SubPlan cost
- 8c02d92c6475 13.23 landed
- 160ef51c8dba 14.20 landed
- 53e35fb560ab 15.15 landed
- 79ade5873232 16.11 landed
- f34202f51867 17.7 landed
- ab4a35b4ea9d 18.0 landed
- aba8f61c3091 19 (unreleased) landed
On Wed, Sep 3, 2025 at 12:27 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Richard Guo <guofenglinux@gmail.com> writes: > > Here is the patch that passes root as NULL to cost_qual_eval() in > > cost_subplan(), along with some commentary about why. > v2 LGTM. I did think of a way to make the test case a little > less busy-looking: > > select (1 = any(array_agg(f1))) = any (select false) from int4_tbl; > > but that's just cosmetic. Thanks, I'll take this test case. One thing I'm not quite sure about is whether we should backpatch this fix to pre-v17 branches. Prior to v17, estimate_array_length() wasn't taught to use statistics, so this error isn't reproducible there. OTOH, passing a root without a valid simple_rel_array to cost_qual_eval() still seems potentially unsafe. What do you think? - Richard