@@ -286,15 +286,17 @@ const int8_t* ColumnFetcher::getAllTableColumnFragments(
286286 const auto & type_width = col_info->type ->size ();
287287 auto write_ptr =
288288 executor_->row_set_mem_owner_ ->allocate (type_width * total_row_count);
289- tbb::concurrent_vector<std::pair<int8_t *, size_t >> write_ptrs;
289+ std::vector<std::pair<int8_t *, size_t >> write_ptrs;
290+ std::vector<size_t > valid_fragments;
290291 for (size_t frag_id = 0 ; frag_id < frag_count; ++frag_id) {
291292 const auto & fragment = (*fragments)[frag_id];
292- if (! fragment.getNumTuples ()) {
293+ if (fragment.isEmptyPhysicalFragment ()) {
293294 continue ;
294295 }
295296 CHECK_EQ (type_width, fragment.getChunkMetadataMap ().at (col_id)->type ()->size ());
296297 write_ptrs.push_back ({write_ptr, fragment.getNumTuples () * type_width});
297298 write_ptr += fragment.getNumTuples () * type_width;
299+ valid_fragments.push_back (frag_id);
298300 }
299301
300302 if (write_ptrs.empty ()) {
@@ -308,17 +310,16 @@ const int8_t* ColumnFetcher::getAllTableColumnFragments(
308310 table_column, 0 , memory_level, device_id, device_allocator);
309311 }
310312
311- CHECK_EQ (frag_count, write_ptrs .size () );
313+ size_t valid_frag_count = valid_fragments .size ();
312314 tbb::parallel_for (
313- tbb::blocked_range<size_t >(0 , frag_count ),
315+ tbb::blocked_range<size_t >(0 , valid_frag_count ),
314316 [&](const tbb::blocked_range<size_t >& frag_ids) {
315- for (size_t frag_id = frag_ids.begin (); frag_id < frag_ids.end (); ++frag_id) {
317+ for (size_t v_frag_id = frag_ids.begin (); v_frag_id < frag_ids.end ();
318+ ++v_frag_id) {
316319 std::list<std::shared_ptr<Chunk_NS::Chunk>> chunk_holder;
317320 std::list<ChunkIter> chunk_iter_holder;
321+ size_t frag_id = valid_fragments[v_frag_id];
318322 const auto & fragment = (*fragments)[frag_id];
319- if (fragment.isEmptyPhysicalFragment ()) {
320- continue ;
321- }
322323 auto chunk_meta_it = fragment.getChunkMetadataMap ().find (col_id);
323324 CHECK (chunk_meta_it != fragment.getChunkMetadataMap ().end ());
324325 std::shared_ptr<Chunk_NS::Chunk> chunk;
0 commit comments