code: func (l *List) Add(chk *Chunk) {
  	// FixMe: we should avoid add a Chunk that chk.NumRows() > list.maxChunkSize.
  	if chk.NumRows() == 0 {
  		panic("chunk appended to List should have at least 1 row")
  	}
  	if chkIdx := len(l.chunks) - 1; l.consumedIdx != chkIdx {
  		l.memTracker.Consume(l.chunks[chkIdx].MemoryUsage())
  		l.consumedIdx = chkIdx
  	}
  	l.memTracker.Consume(chk.MemoryUsage())
  	l.consumedIdx++
  	l.chunks = append(l.chunks, chk)
  	l.length += chk.NumRows()
  	return
  }
docs: // Add adds a chunk to the List, the chunk may be modified later by the list.
  // Caller must make sure the input chk is not empty and not used any more and has the same field types.