Re: BUG #17700: An assert failed in prepjointree.c
Richard Guo <guofenglinux@gmail.com>
From: Richard Guo <guofenglinux@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Daniel Gustafsson <daniel@yesql.se>, xinwen@stu.scu.edu.cn,
pgsql-bugs@lists.postgresql.org
Date: 2022-11-29T02:19:00Z
Lists: pgsql-bugs
On Tue, Nov 29, 2022 at 8:12 AM Richard Guo <guofenglinux@gmail.com> wrote: > On Tue, Nov 29, 2022 at 12:22 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > >> Actually ... it seems like we could just drop that Assert, as per >> revised argument in the comment. This'd explain the lack of field >> complaints: there's no bug in a production build. > > > Ah yes, that's right. We can be sure that above the semijoin there > would be no reference to its RHS. And the PHV in semijoin's qual seems > unnecessary. > > This reminds me of another question I had about unwrapping unnecessary > PHVs [1]. Sad that we don't have infrastructure for that. > BTW, for the test case +explain (verbose, costs off) +with ctetable as not materialized ( select 1 as f1 ) +select * from ctetable c1 +where f1 in ( select c3.f1 from ctetable c2 full join ctetable c3 on true ); Actually we just need to keep 'c3' in a join's nullable side to have the PHV created. So we don't have to use full join in the subquery. A left join would do. Thanks Richard
Commits
-
Remove bogus Assert and dead code in remove_useless_results_recurse().
- bb8d48cb9df1 12.14 landed
- aca695fb6847 13.10 landed
- 556c0b913be1 15.2 landed
- 51dfaa0b010c 16.0 landed
- 0224646beec6 14.7 landed