#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
+#include <exception>
#include <gflags/gflags.h>
#include "db/db_impl.h"
#include "db/version_set.h"
? NewBloomFilterPolicy(FLAGS_bloom_bits)
: nullptr),
db_(nullptr),
- new_column_family_name_(0),
+ new_column_family_name_(1),
num_times_reopened_(0) {
if (FLAGS_destroy_db_initially) {
std::vector<std::string> files;
Status s __attribute__((unused));
s = db_->DropColumnFamily(column_families_[cf]);
delete column_families_[cf];
- assert(s.ok());
+ if (!s.ok()) {
+ fprintf(stderr, "dropping column family error: %s\n",
+ s.ToString().c_str());
+ std::terminate();
+ }
s = db_->CreateColumnFamily(ColumnFamilyOptions(options_), new_name,
&column_families_[cf]);
column_family_names_[cf] = new_name;
thread->shared->ClearColumnFamily(cf);
- assert(s.ok());
+ if (!s.ok()) {
+ fprintf(stderr, "creating column family error: %s\n",
+ s.ToString().c_str());
+ std::terminate();
+ }
thread->shared->UnlockColumnFamily(cf);
}
}
}
}
thread->shared->Put(rand_column_family, rand_key, value_base);
+ Status s;
if (FLAGS_use_merge) {
- db_->Merge(write_opts, column_family, key, v);
+ s = db_->Merge(write_opts, column_family, key, v);
} else {
- db_->Put(write_opts, column_family, key, v);
+ s = db_->Put(write_opts, column_family, key, v);
+ }
+ if (!s.ok()) {
+ fprintf(stderr, "put or merge error: %s\n", s.ToString().c_str());
+ std::terminate();
}
thread->stats.AddBytesForWrites(1, sz);
} else {
// OPERATION delete
if (!FLAGS_test_batches_snapshots) {
thread->shared->Delete(rand_column_family, rand_key);
- db_->Delete(write_opts, column_family, key);
+ Status s = db_->Delete(write_opts, column_family, key);
thread->stats.AddDeletes(1);
+ if (!s.ok()) {
+ fprintf(stderr, "delete error: %s\n", s.ToString().c_str());
+ std::terminate();
+ }
} else {
MultiDelete(thread, write_opts, column_family, key);
}