提交 d89027f4 编写于 作者: V vrofze

Fix DBImpl::CreateColumnFamilyImpl bug

上级 f81f8250
......@@ -1437,26 +1437,6 @@ Status DBImpl::CreateColumnFamily(const ColumnFamilyOptions& cf_options,
const std::string& column_family,
ColumnFamilyHandle** handle) {
assert(handle != nullptr);
#ifndef _MSC_VER
const char* terarkdb_localTempDir = getenv("TerarkZipTable_localTempDir");
if (terarkdb_localTempDir) {
if (TerarkZipCFOptionsFromEnv && TerarkZipIsBlackListCF) {
if (::access(terarkdb_localTempDir, R_OK | W_OK) != 0) {
return Status::InvalidArgument(
"Must exists, and Permission ReadWrite is required on "
"env TerarkZipTable_localTempDir",
terarkdb_localTempDir);
}
if (!TerarkZipIsBlackListCF(column_family)) {
TerarkZipCFOptionsFromEnv(const_cast<ColumnFamilyOptions&>(cf_options));
return Status::InvalidArgument(
"env TerarkZipTable_localTempDir is defined, "
"but dynamic libterark-zip-rocksdb is not loaded");
}
}
}
#endif
Status s = CreateColumnFamilyImpl(cf_options, column_family, handle);
if (s.ok()) {
s = WriteOptionsFile(true /*need_mutex_lock*/,
......@@ -1527,6 +1507,25 @@ Status DBImpl::CreateColumnFamilyImpl(const ColumnFamilyOptions& cf_options,
Status s;
Status persist_options_status;
*handle = nullptr;
#ifndef _MSC_VER
const char* terarkdb_localTempDir = getenv("TerarkZipTable_localTempDir");
if (terarkdb_localTempDir) {
if (TerarkZipCFOptionsFromEnv && TerarkZipIsBlackListCF) {
if (::access(terarkdb_localTempDir, R_OK | W_OK) != 0) {
return Status::InvalidArgument(
"Must exists, and Permission ReadWrite is required on "
"env TerarkZipTable_localTempDir", terarkdb_localTempDir);
}
if (!TerarkZipIsBlackListCF(column_family_name)) {
TerarkZipCFOptionsFromEnv(const_cast<ColumnFamilyOptions&>(cf_options));
}
} else {
return Status::InvalidArgument(
"env TerarkZipTable_localTempDir is defined, "
"but dynamic libterark-zip-rocksdb is not loaded");
}
}
#endif
s = CheckCompressionSupported(cf_options);
if (s.ok() && immutable_db_options_.allow_concurrent_memtable_write) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册