On Mon, Jul 24, 2017 at 3:12 PM, Dmitry Lazurkin <dilaz03(at)gmail(dot)com> wrote:
> And I have one question. I don't understand why IN-VALUES doesn't use
> Semi-Join? PostgreSQL has Hash Semi-Join... For which task the database
> has node of this type?
>
Semi-Join is canonically written as:
SELECT *
FROM tbl
WHERE EXISTS (SELECT 1 FROM tbl2 WHERE tbl.id = tbl2.id)
The main difference between IN and EXISTS is NULL semantics.
David J.