code: func newVarLenColumn(cap int, old *column) *column {
  	estimatedElemLen := 8
  	// For varLenColumn (e.g. varchar), the accurate length of an element is unknown.
  	// Therefore, in the first executor.Next we use an experience value -- 8 (so it may make runtime.growslice)
  	// but in the following Next call we estimate the length as AVG x 1.125 elemLen of the previous call.
  	if old != nil && old.length != 0 {
  		estimatedElemLen = (len(old.data) + len(old.data)/8) / old.length
  	}
  	return &column{
  		offsets:    make([]int32, 1, cap+1),
  		data:       make([]byte, 0, cap*estimatedElemLen),
  		nullBitmap: make([]byte, 0, cap>>3),
  	}
  }
docs: // newVarLenColumn creates a variable length column with initial data capacity.