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-29T03:12:02Z
Lists: pgsql-bugs
On Tue, Nov 29, 2022 at 10:24 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Richard Guo <guofenglinux@gmail.com> writes: > > 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. > > Actually, the planner reduces the full join to left join anyway; > if it did not, it wouldn't be able to reach the code in question. > I think this formulation is fine because it tests that step along > with the bug proper. Hmm, I see your point. You're right. 'c2 fulljoin c3' would be reduced to 'c3 leftjoin c2'. BTW, I wonder if we need the JOIN_RIGHT case here since JOIN_RIGHT should have been flipped around to become JOIN_LEFT. 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