Set dropped column family before persisting in the manifest

main
Igor Canadi 11 years ago
parent 670f3ba212
commit f6a257b6a1
  1. 2
      db/db_impl.cc
  2. 5
      db/version_set.cc

@ -3098,10 +3098,10 @@ Status DBImpl::DropColumnFamily(ColumnFamilyHandle* column_family) {
s = Status::InvalidArgument("Column family already dropped!\n");
}
if (s.ok()) {
cfd->SetDropped();
s = versions_->LogAndApply(cfd, &edit, &mutex_);
}
if (s.ok()) {
cfd->SetDropped();
// DB is holding one reference to each column family when it's alive,
// need to drop it now
if (cfd->Unref()) {

@ -1489,8 +1489,9 @@ Status VersionSet::LogAndApply(ColumnFamilyData* column_family_data,
bool new_descriptor_log) {
mu->AssertHeld();
if (column_family_data->IsDropped()) {
// no need to write anything to the manifest
if (column_family_data->IsDropped() && !edit->is_column_family_drop_) {
// if column family is dropped no need to write anything to the manifest
// (unless, of course, thit is the drop column family write)
return Status::OK();
}

Loading…
Cancel
Save