code: func (idx *CfIndex) DisconnectBlock(dbTx database.Tx, block *btcutil.Block,
  	_ []blockchain.SpentTxOut) error {
  
  	for _, key := range cfIndexKeys {
  		err := dbDeleteFilterIdxEntry(dbTx, key, block.Hash())
  		if err != nil {
  			return err
  		}
  	}
  
  	for _, key := range cfHeaderKeys {
  		err := dbDeleteFilterIdxEntry(dbTx, key, block.Hash())
  		if err != nil {
  			return err
  		}
  	}
  
  	for _, key := range cfHashKeys {
  		err := dbDeleteFilterIdxEntry(dbTx, key, block.Hash())
  		if err != nil {
  			return err
  		}
  	}
  
  	return nil
  }
docs: // DisconnectBlock is invoked by the index manager when a block has been
  // disconnected from the main chain.  This indexer removes the hash-to-cf
  // mapping for every passed block. This is part of the Indexer interface.