summaryrefslogtreecommitdiff
path: root/db/builder.cc
diff options
context:
space:
mode:
Diffstat (limited to 'db/builder.cc')
-rw-r--r--db/builder.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/db/builder.cc b/db/builder.cc
index 9520ee4..e6329e0 100644
--- a/db/builder.cc
+++ b/db/builder.cc
@@ -30,11 +30,14 @@ Status BuildTable(const std::string& dbname, Env* env, const Options& options,
TableBuilder* builder = new TableBuilder(options, file);
meta->smallest.DecodeFrom(iter->key());
+ Slice key;
for (; iter->Valid(); iter->Next()) {
- Slice key = iter->key();
- meta->largest.DecodeFrom(key);
+ key = iter->key();
builder->Add(key, iter->value());
}
+ if (!key.empty()) {
+ meta->largest.DecodeFrom(key);
+ }
// Finish and check for builder errors
s = builder->Finish();
@@ -71,7 +74,7 @@ Status BuildTable(const std::string& dbname, Env* env, const Options& options,
if (s.ok() && meta->file_size > 0) {
// Keep it
} else {
- env->DeleteFile(fname);
+ env->RemoveFile(fname);
}
return s;
}