#include <cstring>
#include "port/port.h"
-namespace rocksdb {
+namespace ROCKSDB_NAMESPACE {
const char* Status::CopyState(const char* state) {
#ifdef OS_WIN
const size_t cch = std::strlen(state) + 1; // +1 for the null terminator
char* result = new char[cch];
- errno_t ret;
+ errno_t ret
+#if defined(_MSC_VER)
+ ;
+#else
+ __attribute__((__unused__));
+#endif
ret = strncpy_s(result, cch, state, cch - 1);
result[cch - 1] = '\0';
assert(ret == 0);
"Deadlock", // kDeadlock
"Stale file handle", // kStaleFile
"Memory limit reached", // kMemoryLimit
- "Space limit reached" // kSpaceLimit
+ "Space limit reached", // kSpaceLimit
+ "No such file or directory", // kPathNotFound
+ // KMergeOperandsInsufficientCapacity
+ "Insufficient capacity for merge operands",
+ // kManualCompactionPaused
+ "Manual compaction paused",
+ " (overwritten)", // kOverwritten, subcode of OK
+ "Txn not prepared", // kTxnNotPrepared
+ "IO fenced off", // kIOFenced
};
Status::Status(Code _code, SubCode _subcode, const Slice& msg,
}
std::string Status::ToString() const {
+#ifdef ROCKSDB_ASSERT_STATUS_CHECKED
+ checked_ = true;
+#endif // ROCKSDB_ASSERT_STATUS_CHECKED
char tmp[30];
const char* type;
switch (code_) {
case kTryAgain:
type = "Operation failed. Try again.: ";
break;
+ case kColumnFamilyDropped:
+ type = "Column family dropped: ";
+ break;
default:
snprintf(tmp, sizeof(tmp), "Unknown code(%d): ",
static_cast<int>(code()));
std::string result(type);
if (subcode_ != kNone) {
uint32_t index = static_cast<int32_t>(subcode_);
- assert(sizeof(msgs) > index);
+ assert(sizeof(msgs) / sizeof(msgs[0]) > index);
result.append(msgs[index]);
}
return result;
}
-} // namespace rocksdb
+} // namespace ROCKSDB_NAMESPACE