code: func (p *LogicalUnionAll) PredicatePushDown(predicates []expression.Expression) (ret []expression.Expression, retPlan LogicalPlan) {
  	for i, proj := range p.children {
  		newExprs := make([]expression.Expression, 0, len(predicates))
  		newExprs = append(newExprs, predicates...)
  		retCond, newChild := proj.PredicatePushDown(newExprs)
  		addSelection(p, newChild, retCond, i)
  	}
  	return nil, p
  }
docs: // PredicatePushDown implements LogicalPlan PredicatePushDown interface.