ndb - bug#20751 : report also composite op in merge

parent d5bb5130
...@@ -1809,11 +1809,18 @@ NdbEventBuffer::insertDataL(NdbEventOperationImpl *op, ...@@ -1809,11 +1809,18 @@ NdbEventBuffer::insertDataL(NdbEventOperationImpl *op,
} }
// merge is on so we do not report blob part events // merge is on so we do not report blob part events
if (! is_blob_event) { if (! is_blob_event) {
// report actual operation, not composite // report actual operation and the composite
// there is no way to "fix" the flags for a composite op // there is no way to "fix" the flags for a composite op
// since the flags represent multiple ops on multiple PKs // since the flags represent multiple ops on multiple PKs
EventBufData_list::Gci_op g = { op, (1 << sdata->operation) }; // XXX fix by doing merge at end of epoch (extra mem cost)
bucket->m_data.add_gci_op(g); {
EventBufData_list::Gci_op g = { op, (1 << sdata->operation) };
bucket->m_data.add_gci_op(g);
}
{
EventBufData_list::Gci_op g = { op, (1 << data->sdata->operation) };
bucket->m_data.add_gci_op(g);
}
} }
} }
DBUG_RETURN_EVENT(0); DBUG_RETURN_EVENT(0);
......
...@@ -1535,11 +1535,19 @@ selecttables() ...@@ -1535,11 +1535,19 @@ selecttables()
uint i; uint i;
for (i = 0; i < maxrun(); i++) for (i = 0; i < maxrun(); i++)
run(i).skip = false; run(i).skip = false;
if (g_opts.opstring != 0) {
ll1("using all tables due to fixed ops");
return;
}
for (i = 0; i + 1 < maxrun(); i++) for (i = 0; i + 1 < maxrun(); i++)
run(urandom(maxrun())).skip = true; run(urandom(maxrun())).skip = true;
uint cnt = 0; uint cnt = 0;
for (i = 0; i < maxrun(); i++) for (i = 0; i < maxrun(); i++) {
cnt += ! run(i).skip; if (! run(i).skip) {
ll2("use table " << run(i).tabname);
cnt++;
}
}
ll1("use " << cnt << "/" << maxrun() << " tables in this loop"); ll1("use " << cnt << "/" << maxrun() << " tables in this loop");
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment