1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-07-30 07:23:07 +03:00

Fixed key conversion in wsrep_provider_v26::enter_toi()

This commit is contained in:
Teemu Ollakka
2018-06-26 09:13:56 +03:00
parent ccf5c08c35
commit bd0ba5b01d

View File

@ -672,22 +672,23 @@ wsrep::wsrep_provider_v26::enter_toi(
int flags) int flags)
{ {
mutable_ws_meta mmeta(ws_meta, flags); mutable_ws_meta mmeta(ws_meta, flags);
std::vector<wsrep_buf_t> key_parts; std::vector<std::vector<wsrep_buf_t> > key_parts;
size_t key_parts_offset(0);
std::vector<wsrep_key_t> wsrep_keys; std::vector<wsrep_key_t> wsrep_keys;
wsrep_buf_t wsrep_buf = {buffer.data(), buffer.size()}; wsrep_buf_t wsrep_buf = {buffer.data(), buffer.size()};
for (wsrep::key_array::const_iterator i(keys.begin()); for (size_t i(0); i < keys.size(); ++i)
i != keys.end(); ++i)
{ {
for (size_t kp(0); kp < i->size(); ++kp) key_parts.push_back(std::vector<wsrep_buf_t>());
for (size_t kp(0); kp < keys[i].size(); ++kp)
{ {
wsrep_buf_t buf = {i->key_parts()[kp].data(), wsrep_buf_t buf = {keys[i].key_parts()[kp].data(),
i->key_parts()[kp].size()}; keys[i].key_parts()[kp].size()};
key_parts.push_back(buf); key_parts[i].push_back(buf);
} }
wsrep_key_t key = {&key_parts[0] + key_parts_offset, i->size()}; }
for (size_t i(0); i < key_parts.size(); ++i)
{
wsrep_key_t key = {key_parts[i].data(), key_parts[i].size()};
wsrep_keys.push_back(key); wsrep_keys.push_back(key);
key_parts_offset += i->size();
} }
return map_return_value(wsrep_->to_execute_start( return map_return_value(wsrep_->to_execute_start(
wsrep_, wsrep_,