code: func (f *fragment) importValue(columnIDs, values []uint64, bitDepth uint, clear bool) error {
  	f.mu.Lock()
  	defer f.mu.Unlock()
  
  	// Verify that there are an equal number of column ids and values.
  	if len(columnIDs) != len(values) {
  		return fmt.Errorf("mismatch of column/value len: %d != %d", len(columnIDs), len(values))
  	}
  
  	if len(columnIDs)*int(bitDepth+1)+f.opN < f.MaxOpN {
  		return errors.Wrap(f.importValueSmallWrite(columnIDs, values, bitDepth, clear), "import small write")
  
  	}
  
  	f.storage.OpWriter = nil
  
  	// Process every value.
  	// If an error occurs then reopen the storage.
  	if err := func() (err error) {
  		for i := range columnIDs {
  			columnID, value := columnIDs[i], values[i]
  			if _, err := f.importSetValue(columnID, bitDepth, value, clear); err != nil {
  				return errors.Wrapf(err, "importSetValue")
  			}
  		}
  		return nil
  	}(); err != nil {
  		_ = f.closeStorage()
  		_ = f.openStorage()
  		return err
  	}
  
  	err := f.snapshot()
  	return errors.Wrap(err, "snapshotting")
  }
docs: // importValue bulk imports a set of range-encoded values.