table_helper: take insert function arguments by value
Previous version wasn't working correctly with r-values. Fixes #4438 Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com> Message-Id: <5017b04901c47bd826b2e411e603ce01e42a83a5.1555424512.git.piotr@scylladb.com>
This commit is contained in:
committed by
Avi Kivity
parent
5dc3f5ea33
commit
134b59a425
@@ -88,8 +88,8 @@ public:
|
||||
*/
|
||||
template <typename OptMaker, typename... Args>
|
||||
GCC6_CONCEPT( requires seastar::CanApply<OptMaker, Args...> )
|
||||
future<> insert(service::query_state& qs, OptMaker opt_maker, Args&&... opt_maker_args) {
|
||||
return insert(qs, noncopyable_function<cql3::query_options ()>([opt_maker = std::move(opt_maker), args = std::forward_as_tuple(std::forward<Args>(opt_maker_args)...)] () mutable {
|
||||
future<> insert(service::query_state& qs, OptMaker opt_maker, Args... opt_maker_args) {
|
||||
return insert(qs, noncopyable_function<cql3::query_options ()>([opt_maker = std::move(opt_maker), args = std::make_tuple(std::move(opt_maker_args)...)] () mutable {
|
||||
return apply(opt_maker, std::move(args));
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -408,9 +408,9 @@ future<> trace_keyspace_helper::flush_one_session_mutations(lw_shared_ptr<one_se
|
||||
|
||||
// if session is finished - store a session and a session time index entries
|
||||
tlogger.trace("{}: going to store a session event", records->session_id);
|
||||
return _sessions.insert(_dummy_query_state, make_session_mutation_data, *records).then([this, records] {
|
||||
return _sessions.insert(_dummy_query_state, make_session_mutation_data, std::ref(*records)).then([this, records] {
|
||||
tlogger.trace("{}: going to store a {} entry", records->session_id, _sessions_time_idx.name());
|
||||
return _sessions_time_idx.insert(_dummy_query_state, make_session_time_idx_mutation_data, *records);
|
||||
return _sessions_time_idx.insert(_dummy_query_state, make_session_time_idx_mutation_data, std::ref(*records));
|
||||
}).then([this, records] {
|
||||
if (!records->do_log_slow_query) {
|
||||
return now();
|
||||
@@ -419,9 +419,9 @@ future<> trace_keyspace_helper::flush_one_session_mutations(lw_shared_ptr<one_se
|
||||
// if slow query log is requested - store a slow query log and a slow query log time index entries
|
||||
auto start_time_id = utils::UUID_gen::get_time_UUID(table_helper::make_monotonic_UUID_tp(_slow_query_last_nanos, records->session_rec.started_at));
|
||||
tlogger.trace("{}: going to store a slow query event", records->session_id);
|
||||
return _slow_query_log.insert(_dummy_query_state, make_slow_query_mutation_data, *records, start_time_id).then([this, records, start_time_id] {
|
||||
return _slow_query_log.insert(_dummy_query_state, make_slow_query_mutation_data, std::ref(*records), start_time_id).then([this, records, start_time_id] {
|
||||
tlogger.trace("{}: going to store a {} entry", records->session_id, _slow_query_log_time_idx.name());
|
||||
return _slow_query_log_time_idx.insert(_dummy_query_state, make_slow_query_time_idx_mutation_data, *records, start_time_id);
|
||||
return _slow_query_log_time_idx.insert(_dummy_query_state, make_slow_query_time_idx_mutation_data, std::ref(*records), start_time_id);
|
||||
});
|
||||
});
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user