code: func (p *LogicalUnionScan) PredicatePushDown(predicates []expression.Expression) ([]expression.Expression, LogicalPlan) {
  	retainedPredicates, _ := p.children[0].PredicatePushDown(predicates)
  	p.conditions = make([]expression.Expression, 0, len(predicates))
  	p.conditions = append(p.conditions, predicates...)
  	// The conditions in UnionScan is only used for added rows, so parent Selection should not be removed.
  	return retainedPredicates, p
  }
docs: // PredicatePushDown implements LogicalPlan PredicatePushDown interface.