code: func (r *Row) Merge(other *Row) {
  	var segments []rowSegment
  
  	itr := newMergeSegmentIterator(r.segments, other.segments)
  	for s0, s1 := itr.next(); s0 != nil || s1 != nil; s0, s1 = itr.next() {
  		// Use the other row's data if segment is missing.
  		if s0 == nil {
  			segments = append(segments, *s1)
  			continue
  		} else if s1 == nil {
  			segments = append(segments, *s0)
  			continue
  		}
  
  		// Otherwise merge.
  		s0.Merge(s1)
  		segments = append(segments, *s0)
  	}
  
  	r.segments = segments
  	r.invalidateCount()
  }
docs: // Merge merges data from other into r.