diff --git a/storage/rocksdb/ha_rocksdb.cc b/storage/rocksdb/ha_rocksdb.cc index 6d43dfc84998..3b2e0daa20e9 100644 --- a/storage/rocksdb/ha_rocksdb.cc +++ b/storage/rocksdb/ha_rocksdb.cc @@ -56,6 +56,7 @@ #include "sql/dd/dictionary.h" // dd::Dictionary #include "sql/debug_sync.h" #include "sql/json_dom.h" +#include "sql/plugin_table.h" #include "sql/sql_audit.h" #include "sql/sql_class.h" #include "sql/sql_lex.h" @@ -3257,6 +3258,11 @@ std::string dump_ingest_external_file_options( return s.str(); } +static bool rocksdb_ddse_dict_init(dict_init_mode_t dict_init_mode, + uint version, + List *tables, + List *tablespaces); + /* Very short (functor-like) interface to be passed to Rdb_transaction::walk_tx_list() @@ -7432,6 +7438,8 @@ static int rocksdb_init_internal(void *const p) { rocksdb_hton->clone_interface.clone_apply = rocksdb_clone_apply; rocksdb_hton->clone_interface.clone_apply_end = rocksdb_clone_apply_end; + rocksdb_hton->ddse_dict_init = rocksdb_ddse_dict_init; + rocksdb_hton->flags = HTON_SUPPORTS_EXTENDED_KEYS | HTON_CAN_RECREATE; rocksdb_hton->partition_flags = rocksdb_partition_flags; @@ -19020,6 +19028,22 @@ static bool parse_fault_injection_params( return false; } +static bool rocksdb_ddse_dict_init( + dict_init_mode_t dict_init_mode, [[maybe_unused]] uint version, + [[maybe_unused]] List *tables, + List *tablespaces) { + assert(tables && tables->is_empty()); + assert(tablespaces && tablespaces->is_empty()); + + assert(dict_init_mode == DICT_INIT_CREATE_FILES || + dict_init_mode == DICT_INIT_CHECK_FILES); + + static Plugin_tablespace dd_space("mysql", "", "", "", rocksdb_hton_name); + tablespaces->push_back(&dd_space); + + return false; +} + } // namespace myrocks /*