Michael Day <blake@rcmail.com> writes:
> I have found a nasty bug when using parallel sequential scans with an ex=
ists clause on postgresql 9.6.1. I have found that the rows returned usin=
g parallel sequential scan plans are incorrect (though I haven=E2=80=99t d=
ug sufficiently to know in what ways). See below for an example of the is=
sue.
Hm, looks like a planner error: it seems to be forgetting that the join
to "address" should be a semijoin. "address" should either be on the
inside of a "Semi" join (as in your first, correct-looking plan) or be
passed through a unique-ification stage such as a HashAgg. Clearly,
neither thing is happening in the second plan.
I couldn't reproduce this in a bit of trying, however. Can you come
up with a self-contained test case?
regards, tom lane