Re: BUG #17213: Wrong result from a query involving Merge Semi Join and Memoize
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Elvis Pranskevichus <elprans@gmail.com>
Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>,
David Rowley <dgrowleyml@gmail.com>
Date: 2021-10-05T01:21:21Z
Lists: pgsql-bugs
Elvis Pranskevichus <elprans@gmail.com> writes: > On Monday, October 4, 2021 5:14:47 PM PDT David Rowley wrote: >>> It appears a combination of Merge Semi Join and Memoize in >>> PostgreSQL 14 produces incorrect results on a particular query. > It seems like a very particular set of stats is causing the plan there, > as running ANALYZE turns the query into a Nested Loop Semi Join. Surely this plan tree is broken on its face? The inner side of a mergejoin has to be able to support mark/restore, and nestloop doesn't (cf ExecSupportsMarkRestore, as well as assertions in nodeNestloop). It looks to me like somebody removed an essential plan-time check. regards, tom lane
Commits
-
Flush Memoize cache when non-key parameters change, take 2
- c2dc7b9e1503 14.2 landed
- 411137a42921 15.0 landed
-
Flush Memoize cache when non-key parameters change
- f94edb06ab60 14.2 landed
- 1050048a3157 15.0 landed