NOT IN subquery returns incorrect non-empty result when subquery contains NULL
Reproduction
CREATE TEMP VIEW tbl AS SELECT * FROM VALUES (1,1), (2,2), (3,NULL) AS t(a,b);
SELECT * FROM tbl WHERE a NOT IN (SELECT b FROM tbl);
Expected
Empty result set
Actual
Non-empty result set (incorrect).