@@ -459,7 +459,9 @@ Status PipelineFragmentContext::_build_pipeline_tasks(ThreadPool* thread_pool) {
459
459
pipeline_id_to_profile[pip_idx].get (), get_shared_state (pipeline), i);
460
460
pipeline->incr_created_tasks (i, task.get ());
461
461
pipeline_id_to_task.insert ({pipeline->id (), task.get ()});
462
- _tasks[i].emplace_back ({std::move (task), std::move (task_runtime_state)});
462
+ _tasks[i].emplace_back (
463
+ std::pair<std::shared_ptr<PipelineTask>, std::unique_ptr<RuntimeState>> {
464
+ std::move (task), std::move (task_runtime_state)});
463
465
}
464
466
}
465
467
@@ -1692,7 +1694,7 @@ Status PipelineFragmentContext::submit() {
1692
1694
auto * scheduler = _query_ctx->get_pipe_exec_scheduler ();
1693
1695
for (auto & task : _tasks) {
1694
1696
for (auto & t : task) {
1695
- st = scheduler->submit (t);
1697
+ st = scheduler->submit (t. first );
1696
1698
DBUG_EXECUTE_IF (" PipelineFragmentContext.submit.failed" ,
1697
1699
{ st = Status::Aborted (" PipelineFragmentContext.submit.failed" ); });
1698
1700
if (!st) {
@@ -1881,15 +1883,15 @@ size_t PipelineFragmentContext::get_revocable_size(bool* has_running_task) const
1881
1883
// here to traverse the vector.
1882
1884
for (const auto & task_instances : _tasks) {
1883
1885
for (const auto & task : task_instances) {
1884
- if (task->is_running ()) {
1886
+ if (task. first ->is_running ()) {
1885
1887
LOG_EVERY_N (INFO, 50 ) << " Query: " << print_id (_query_id)
1886
- << " is running, task: " << (void *)task.get ()
1887
- << " , is_running: " << task->is_running ();
1888
+ << " is running, task: " << (void *)task.first . get ()
1889
+ << " , is_running: " << task. first ->is_running ();
1888
1890
*has_running_task = true ;
1889
1891
return 0 ;
1890
1892
}
1891
1893
1892
- size_t revocable_size = task->get_revocable_size ();
1894
+ size_t revocable_size = task. first ->get_revocable_size ();
1893
1895
if (revocable_size >= vectorized::SpillStream::MIN_SPILL_WRITE_BATCH_MEM) {
1894
1896
res += revocable_size;
1895
1897
}
@@ -1902,9 +1904,9 @@ std::vector<PipelineTask*> PipelineFragmentContext::get_revocable_tasks() const
1902
1904
std::vector<PipelineTask*> revocable_tasks;
1903
1905
for (const auto & task_instances : _tasks) {
1904
1906
for (const auto & task : task_instances) {
1905
- size_t revocable_size_ = task->get_revocable_size ();
1907
+ size_t revocable_size_ = task. first ->get_revocable_size ();
1906
1908
if (revocable_size_ >= vectorized::SpillStream::MIN_SPILL_WRITE_BATCH_MEM) {
1907
- revocable_tasks.emplace_back (task.get ());
1909
+ revocable_tasks.emplace_back (task.first . get ());
1908
1910
}
1909
1911
}
1910
1912
}
0 commit comments