code: func (p *Selection) matchProperty(prop *requiredProperty, childPlanInfo ...*physicalPlanInfo) *physicalPlanInfo {
  	if p.onTable {
  		res := p.GetChildByIndex(0).(PhysicalPlan).matchProperty(prop, childPlanInfo...)
  		sel := *p
  		sel.SetChildren(res.p)
  		res.p = &sel
  		res.count = uint64(float64(res.count) * selectionFactor)
  		return res
  	}
  	np := *p
  	np.SetChildren(childPlanInfo[0].p)
  	count := uint64(float64(childPlanInfo[0].count) * selectionFactor)
  	return &physicalPlanInfo{p: &np, cost: childPlanInfo[0].cost, count: count}
  }
docs: // matchProperty implements PhysicalPlan matchProperty interface.