I would add a section for MarkDistinctNode that just passes through the predicate. This will enable predicate pushdown to pass fitlers through that node. Just copy what is happening for SortNode.