code: func (t planTable) getUpdates() (updateNew []*endpoint.Endpoint, updateOld []*endpoint.Endpoint) {
  	for _, row := range t.rows {
  		if row.current != nil && len(row.candidates) > 0 { //dns name is taken
  			update := t.resolver.ResolveUpdate(row.current, row.candidates)
  			// compare "update" to "current" to figure out if actual update is required
  			if shouldUpdateTTL(update, row.current) || targetChanged(update, row.current) || shouldUpdateProviderSpecific(update, row.current) {
  				inheritOwner(row.current, update)
  				updateNew = append(updateNew, update)
  				updateOld = append(updateOld, row.current)
  			}
  			continue
  		}
  	}
  	return
  }
docs: // TODO: allows record type change, which might not be supported by all dns providers