@@ -5437,9 +5437,12 @@ static rocksdb::Status check_rocksdb_options_compatibility(
54375437
54385438 rocksdb::DBOptions loaded_db_opt;
54395439 std::vector<rocksdb::ColumnFamilyDescriptor> loaded_cf_descs;
5440- rocksdb::Status status =
5441- LoadLatestOptions(dbpath, rocksdb::Env::Default(), &loaded_db_opt,
5442- &loaded_cf_descs, rocksdb_ignore_unknown_options);
5440+ rocksdb::ConfigOptions config_options;
5441+ config_options.ignore_unknown_options = rocksdb_ignore_unknown_options;
5442+ config_options.input_strings_escaped = true;
5443+ config_options.env = rocksdb::Env::Default();
5444+ rocksdb::Status status = LoadLatestOptions(config_options, dbpath,
5445+ &loaded_db_opt, &loaded_cf_descs);
54435446
54445447 // If we're starting from scratch and there are no options saved yet then this
54455448 // is a valid case. Therefore we can't compare the current set of options to
@@ -5478,9 +5481,15 @@ static rocksdb::Status check_rocksdb_options_compatibility(
54785481
54795482 // This is the essence of the function - determine if it's safe to open the
54805483 // database or not.
5481- status = CheckOptionsCompatibility(dbpath, rocksdb::Env::Default(), main_opts,
5482- loaded_cf_descs,
5483- rocksdb_ignore_unknown_options);
5484+ rocksdb::ConfigOptions config_options_for_check(main_opts);
5485+ config_options_for_check.sanity_level =
5486+ rocksdb::ConfigOptions::kSanityLevelLooselyCompatible;
5487+ config_options_for_check.ignore_unknown_options =
5488+ rocksdb_ignore_unknown_options;
5489+ config_options_for_check.input_strings_escaped = true;
5490+ config_options_for_check.env = rocksdb::Env::Default();
5491+ status = CheckOptionsCompatibility(config_options_for_check, dbpath,
5492+ main_opts, loaded_cf_descs);
54845493
54855494 return status;
54865495}
0 commit comments