code: func (c *Chunk) Insert(rowIdx int, row Row) {
  	for i, srcCol := range row.c.columns {
  		if row.IsNull(i) {
  			continue
  		}
  		dstCol := c.columns[i]
  		var srcStart, srcEnd, destStart, destEnd int
  		if srcCol.isFixed() {
  			srcElemLen, destElemLen := len(srcCol.elemBuf), len(dstCol.elemBuf)
  			srcStart, destStart = row.idx*srcElemLen, rowIdx*destElemLen
  			srcEnd, destEnd = srcStart+srcElemLen, destStart+destElemLen
  		} else {
  			srcStart, srcEnd = int(srcCol.offsets[row.idx]), int(srcCol.offsets[row.idx+1])
  			destStart, destEnd = int(dstCol.offsets[rowIdx]), int(dstCol.offsets[rowIdx+1])
  		}
  		copy(dstCol.data[destStart:destEnd], srcCol.data[srcStart:srcEnd])
  	}
  }
docs: // Insert inserts `row` on the position specified by `rowIdx`.
  // Note: Insert will cover the origin data, it should be called after
  // PreAlloc.