code: func (tx *Tx) DropIndex(name string) error {
  	if tx.db == nil {
  		return ErrTxClosed
  	} else if !tx.writable {
  		return ErrTxNotWritable
  	} else if tx.wc.itercount > 0 {
  		return ErrTxIterating
  	}
  	if name == "" {
  		// cannot drop the default "keys" index
  		return ErrInvalidOperation
  	}
  	idx, ok := tx.db.idxs[name]
  	if !ok {
  		return ErrNotFound
  	}
  	// delete from the map.
  	// this is all that is needed to delete an index.
  	delete(tx.db.idxs, name)
  	if tx.wc.rbkeys == nil {
  		// store the index in the rollback map.
  		if _, ok := tx.wc.rollbackIndexes[name]; !ok {
  			// we use a non-nil copy of the index without the data to indicate that the
  			// index should be rebuilt upon rollback.
  			tx.wc.rollbackIndexes[name] = idx.clearCopy()
  		}
  	}
  	return nil
  }
docs: // DropIndex removes an index.