code: func (i *Index) AddValue(fieldName string, col uint64OrString, val int64) {
  	var c chanRecordIterator
  	var ok bool
  
  	if !validUint64OrString(col) {
  		panic(fmt.Sprintf("a %T was passed, must be eithe uint64 or string", col))
  	}
  
  	i.lock.RLock()
  	if c, ok = i.recordChans[fieldName]; !ok {
  		i.lock.RUnlock()
  		i.lock.Lock()
  		defer i.lock.Unlock()
  		field := i.index.Field(fieldName, gopilosa.OptFieldTypeInt(0, 1<<31-1))
  		err := i.setupField(field)
  		if err != nil {
  			log.Println(errors.Wrap(err, "setting up field"))
  			return
  		}
  		c = i.recordChans[fieldName]
  	} else {
  		i.lock.RUnlock()
  	}
  	c <- gopilosa.FieldValue{ColumnID: uint64Cast(col), ColumnKey: stringCast(col), Value: val}
  }
docs: // AddValue adds a value to be imported to Pilosa.