#pragma once
-#include "rocksdb/utilities/ldb_cmd.h"
-
#include <map>
#include <string>
#include <utility>
#include <vector>
+#include "rocksdb/utilities/ldb_cmd.h"
+
namespace ROCKSDB_NAMESPACE {
class CompactorCommand : public LDBCommand {
static void Help(std::string& ret);
- virtual void DoCommand() override;
+ void DoCommand() override;
private:
bool null_from_;
static void Help(std::string& ret);
- virtual void DoCommand() override;
+ void DoCommand() override;
+
+ private:
+ bool decode_blob_index_;
+ bool dump_uncompressed_blobs_;
+};
+
+class DBLiveFilesMetadataDumperCommand : public LDBCommand {
+ public:
+ static std::string Name() { return "list_live_files_metadata"; }
+
+ DBLiveFilesMetadataDumperCommand(
+ const std::vector<std::string>& params,
+ const std::map<std::string, std::string>& options,
+ const std::vector<std::string>& flags);
+
+ static void Help(std::string& ret);
+
+ void DoCommand() override;
+
+ private:
+ bool sort_by_filename_;
+
+ static const std::string ARG_SORT_BY_FILENAME;
};
class DBDumperCommand : public LDBCommand {
static void Help(std::string& ret);
- virtual void DoCommand() override;
+ void DoCommand() override;
private:
/**
* Extract file name from the full path. We handle both the forward slash (/)
* and backslash (\) to make sure that different OS-s are supported.
- */
+ */
static std::string GetFileNameFromPath(const std::string& s) {
std::size_t n = s.find_last_of("/\\");
bool count_delim_;
bool print_stats_;
std::string path_;
+ bool decode_blob_index_;
+ bool dump_uncompressed_blobs_;
static const std::string ARG_COUNT_ONLY;
static const std::string ARG_COUNT_DELIM;
static void Help(std::string& ret);
- virtual void DoCommand() override;
+ void DoCommand() override;
private:
bool has_from_;
bool count_delim_;
bool print_stats_;
bool is_input_key_hex_;
+ bool decode_blob_index_;
static const std::string ARG_DELIM;
static const std::string ARG_COUNT_ONLY;
const std::vector<std::string>& flags);
static void Help(std::string& ret);
- virtual void DoCommand() override;
- virtual void OverrideBaseOptions() override;
+ void DoCommand() override;
+
+ void OverrideBaseOptions() override;
private:
bool disable_wal_;
const std::vector<std::string>& flags);
static void Help(std::string& ret);
- virtual void DoCommand() override;
- virtual bool NoDBOpen() override { return true; }
+ void DoCommand() override;
+
+ bool NoDBOpen() override { return true; }
private:
bool verbose_;
static const std::string ARG_PATH;
};
+class UpdateManifestCommand : public LDBCommand {
+ public:
+ static std::string Name() { return "update_manifest"; }
+
+ UpdateManifestCommand(const std::vector<std::string>& params,
+ const std::map<std::string, std::string>& options,
+ const std::vector<std::string>& flags);
+
+ static void Help(std::string& ret);
+ virtual void DoCommand() override;
+
+ virtual bool NoDBOpen() override { return true; }
+
+ private:
+ bool verbose_;
+ bool update_temperatures_;
+ // TODO future: checksum_func for populating checksums
+
+ static const std::string ARG_VERBOSE;
+ static const std::string ARG_UPDATE_TEMPERATURES;
+};
+
class FileChecksumDumpCommand : public LDBCommand {
public:
static std::string Name() { return "file_checksum_dump"; }
private:
std::string path_;
+ bool is_checksum_hex_;
static const std::string ARG_PATH;
};
+class GetPropertyCommand : public LDBCommand {
+ public:
+ static std::string Name() { return "get_property"; }
+
+ GetPropertyCommand(const std::vector<std::string>& params,
+ const std::map<std::string, std::string>& options,
+ const std::vector<std::string>& flags);
+
+ static void Help(std::string& ret);
+ void DoCommand() override;
+
+ private:
+ std::string property_;
+};
+
class ListColumnFamiliesCommand : public LDBCommand {
public:
static std::string Name() { return "list_column_families"; }
const std::vector<std::string>& flags);
static void Help(std::string& ret);
- virtual void DoCommand() override;
- virtual bool NoDBOpen() override { return true; }
+ void DoCommand() override;
+
+ bool NoDBOpen() override { return true; }
};
class CreateColumnFamilyCommand : public LDBCommand {
const std::vector<std::string>& flags);
static void Help(std::string& ret);
- virtual void DoCommand() override;
- virtual bool NoDBOpen() override { return false; }
+ void DoCommand() override;
+
+ bool NoDBOpen() override { return false; }
private:
std::string new_cf_name_;
const std::vector<std::string>& flags);
static void Help(std::string& ret);
- virtual void DoCommand() override;
- virtual bool NoDBOpen() override { return false; }
+ void DoCommand() override;
+
+ bool NoDBOpen() override { return false; }
private:
std::string cf_name_to_drop_;
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void OverrideBaseOptions() override;
+ void OverrideBaseCFOptions(ColumnFamilyOptions* cf_opts) override;
- virtual void DoCommand() override;
+ void DoCommand() override;
- virtual bool NoDBOpen() override { return true; }
+ bool NoDBOpen() override { return true; }
static void Help(std::string& msg);
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void OverrideBaseOptions() override;
+ void OverrideBaseCFOptions(ColumnFamilyOptions* cf_opts) override;
- virtual void DoCommand() override;
+ void DoCommand() override;
static void Help(std::string& msg);
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual bool NoDBOpen() override { return true; }
+ bool NoDBOpen() override { return true; }
static void Help(std::string& ret);
- virtual void DoCommand() override;
+
+ void DoCommand() override;
private:
bool print_header_;
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void DoCommand() override;
+ void DoCommand() override;
static void Help(std::string& ret);
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void DoCommand() override;
+ void DoCommand() override;
static void Help(std::string& ret);
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void DoCommand() override;
+ void DoCommand() override;
static void Help(std::string& ret);
- virtual void OverrideBaseOptions() override;
+ void OverrideBaseOptions() override;
private:
/**
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void DoCommand() override;
+ void DoCommand() override;
static void Help(std::string& ret);
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void DoCommand() override;
+ void DoCommand() override;
+
+ static void Help(std::string& ret);
+
+ private:
+ std::string key_;
+};
+
+class SingleDeleteCommand : public LDBCommand {
+ public:
+ static std::string Name() { return "singledelete"; }
+
+ SingleDeleteCommand(const std::vector<std::string>& params,
+ const std::map<std::string, std::string>& options,
+ const std::vector<std::string>& flags);
+
+ void DoCommand() override;
static void Help(std::string& ret);
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void DoCommand() override;
+ void DoCommand() override;
static void Help(std::string& ret);
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void DoCommand() override;
+ void DoCommand() override;
static void Help(std::string& ret);
- virtual void OverrideBaseOptions() override;
+ void OverrideBaseOptions() override;
private:
std::string key_;
static void Help(std::string& ret);
- virtual void DoCommand() override;
+ void DoCommand() override;
private:
static const char* HELP_CMD;
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void DoCommand() override;
+ void DoCommand() override;
- virtual bool NoDBOpen() override { return true; }
+ bool NoDBOpen() override { return true; }
static void Help(std::string& ret);
};
static std::string Name() { return "checkpoint"; }
CheckPointCommand(const std::vector<std::string>& params,
- const std::map<std::string, std::string>& options,
- const std::vector<std::string>& flags);
+ const std::map<std::string, std::string>& options,
+ const std::vector<std::string>& flags);
- virtual void DoCommand() override;
+ void DoCommand() override;
static void Help(std::string& ret);
std::string checkpoint_dir_;
+
private:
static const std::string ARG_CHECKPOINT_DIR;
};
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void DoCommand() override;
+ void DoCommand() override;
- virtual bool NoDBOpen() override { return true; }
+ bool NoDBOpen() override { return true; }
- virtual void OverrideBaseOptions() override;
+ void OverrideBaseOptions() override;
static void Help(std::string& ret);
+
+ protected:
+ bool verbose_;
+
+ private:
+ static const std::string ARG_VERBOSE;
};
-class BackupableCommand : public LDBCommand {
+class BackupEngineCommand : public LDBCommand {
public:
- BackupableCommand(const std::vector<std::string>& params,
- const std::map<std::string, std::string>& options,
- const std::vector<std::string>& flags);
+ BackupEngineCommand(const std::vector<std::string>& params,
+ const std::map<std::string, std::string>& options,
+ const std::vector<std::string>& flags);
protected:
static void Help(const std::string& name, std::string& ret);
std::string backup_env_uri_;
+ std::string backup_fs_uri_;
std::string backup_dir_;
int num_threads_;
std::unique_ptr<Logger> logger_;
private:
static const std::string ARG_BACKUP_DIR;
static const std::string ARG_BACKUP_ENV_URI;
+ static const std::string ARG_BACKUP_FS_URI;
static const std::string ARG_NUM_THREADS;
static const std::string ARG_STDERR_LOG_LEVEL;
};
-class BackupCommand : public BackupableCommand {
+class BackupCommand : public BackupEngineCommand {
public:
static std::string Name() { return "backup"; }
BackupCommand(const std::vector<std::string>& params,
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void DoCommand() override;
+ void DoCommand() override;
static void Help(std::string& ret);
};
-class RestoreCommand : public BackupableCommand {
+class RestoreCommand : public BackupEngineCommand {
public:
static std::string Name() { return "restore"; }
RestoreCommand(const std::vector<std::string>& params,
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void DoCommand() override;
- virtual bool NoDBOpen() override { return true; }
+ void DoCommand() override;
+ bool NoDBOpen() override { return true; }
static void Help(std::string& ret);
};
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void DoCommand() override;
+ void DoCommand() override;
- virtual bool NoDBOpen() override { return false; }
+ bool NoDBOpen() override { return false; }
- virtual void OverrideBaseOptions() override;
+ void OverrideBaseOptions() override;
static void Help(std::string& ret);
const std::map<std::string, std::string>& options,
const std::vector<std::string>& flags);
- virtual void DoCommand() override;
+ void DoCommand() override;
- virtual bool NoDBOpen() override { return false; }
+ bool NoDBOpen() override { return false; }
- virtual void OverrideBaseOptions() override;
+ void OverrideBaseOptions() override;
static void Help(std::string& ret);
static void Help(std::string& ret);
- virtual void DoCommand() override;
+ void DoCommand() override;
- virtual bool NoDBOpen() override { return true; }
+ bool NoDBOpen() override { return true; }
private:
uint64_t sst_file_number_;