All Implemented Interfaces:
NamedWriteable, Writeable, PostAnalysisVerificationAware, PostOptimizationVerificationAware, Resolvable, ExecutesOn, ExecutesOn.Coordinator, SortAgnostic, SortPreserving

public class AntiJoin extends AbstractSubqueryJoin
An anti join used to implement WHERE field NOT IN (subquery).

The dual of SemiJoin: it shares the AbstractSubqueryJoin dedup pipeline and only flips the hooks that distinguish NOT IN from IN — it uses JoinTypes.ANTI, wraps the inline filter in Not, keeps unmatched rows on the hash-join path (IS NULL on the sentinel), and short-circuits to Filter(FALSE) on any NULL right value.