(On 29 April 2017 at 02:26, Tom Lane <t...@sss.pgh.pa.us> wrote: > Alexander Korotkov <a.korot...@postgrespro.ru> writes: >> I've reproduced this bug on d981074c. >> On default config, after loading example.sql.bz2 and VACUUM ANALYZE, query >> result is OK. >> But with seqscan and hashjoin disabled, query returns 0 rows. > > Ah, thanks for the clue about enable_hashjoin, because it wasn't > reproducing for me as stated. > > It looks like in the case that's giving wrong answers, the mergejoin > is wrongly getting marked as "Inner Unique". Something's a bit too () > cheesy about that planner logic --- not sure what, yet.
Seems related to the unconditional setting of extra.inner_unique to true for JOIN_UNIQUE_INNER jointypes in add_paths_to_joinrel() Setting this based on the return value of innerrel_is_unique() as done with the other join types seems to fix the issue. I don't know yet if that's the correct fix. It's pretty late 'round this side to be thinking too hard about it. -- David Rowley http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (firstname.lastname@example.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers