@@ -444,7 +444,7 @@ table_with_metadata hybrid_scan_reader_impl::materialize_filter_columns(
444444 (mask_data_pages == use_data_page_mask::YES)
445445 ? _extended_metadata->compute_data_page_mask (
446446 row_mask, row_group_indices, _input_columns, _rows_processed_so_far, stream)
447- : std::vector<std::vector< bool > >{};
447+ : thrust::host_vector< bool >{};
448448
449449 prepare_data (
450450 read_mode::READ_ALL, row_group_indices, std::move (column_chunk_buffers), data_page_mask);
@@ -474,7 +474,7 @@ table_with_metadata hybrid_scan_reader_impl::materialize_payload_columns(
474474 (mask_data_pages == use_data_page_mask::YES)
475475 ? _extended_metadata->compute_data_page_mask (
476476 row_mask, row_group_indices, _input_columns, _rows_processed_so_far, stream)
477- : std::vector<std::vector< bool > >{};
477+ : thrust::host_vector< bool >{};
478478
479479 prepare_data (
480480 read_mode::READ_ALL, row_group_indices, std::move (column_chunk_buffers), data_page_mask);
@@ -513,7 +513,7 @@ void hybrid_scan_reader_impl::setup_chunking_for_filter_columns(
513513 (mask_data_pages == use_data_page_mask::YES)
514514 ? _extended_metadata->compute_data_page_mask (
515515 row_mask, row_group_indices, _input_columns, _rows_processed_so_far, _stream)
516- : std::vector<std::vector< bool > >{};
516+ : thrust::host_vector< bool >{};
517517
518518 prepare_data (
519519 read_mode::CHUNKED_READ, row_group_indices, std::move (column_chunk_buffers), data_page_mask);
@@ -564,7 +564,7 @@ void hybrid_scan_reader_impl::setup_chunking_for_payload_columns(
564564 (mask_data_pages == use_data_page_mask::YES)
565565 ? _extended_metadata->compute_data_page_mask (
566566 row_mask, row_group_indices, _input_columns, _rows_processed_so_far, _stream)
567- : std::vector<std::vector< bool > >{};
567+ : thrust::host_vector< bool >{};
568568
569569 prepare_data (
570570 read_mode::CHUNKED_READ, row_group_indices, std::move (column_chunk_buffers), data_page_mask);
@@ -645,7 +645,7 @@ void hybrid_scan_reader_impl::prepare_data(
645645 read_mode mode,
646646 cudf::host_span<std::vector<size_type> const > row_group_indices,
647647 std::vector<rmm::device_buffer>&& column_chunk_buffers,
648- cudf::host_span<std::vector< bool > const > data_page_mask)
648+ cudf::host_span<bool const > data_page_mask)
649649{
650650 // if we have not preprocessed at the whole-file level, do that now
651651 if (not _file_preprocessed) {
@@ -857,8 +857,7 @@ table_with_metadata hybrid_scan_reader_impl::finalize_output(
857857 }
858858}
859859
860- void hybrid_scan_reader_impl::set_pass_page_mask (
861- cudf::host_span<std::vector<bool > const > data_page_mask)
860+ void hybrid_scan_reader_impl::set_pass_page_mask (cudf::host_span<bool const > data_page_mask)
862861{
863862 auto const & pass = _pass_itm_data;
864863 auto const & chunks = pass->chunks ;
@@ -872,13 +871,11 @@ void hybrid_scan_reader_impl::set_pass_page_mask(
872871 return ;
873872 }
874873
874+ size_t num_inserted_data_pages = 0 ;
875875 std::for_each (
876876 thrust::counting_iterator<size_t >(0 ),
877877 thrust::counting_iterator (_input_columns.size ()),
878878 [&](auto col_idx) {
879- auto const & col_page_mask = data_page_mask[col_idx];
880- size_t num_inserted_data_pages = 0 ;
881-
882879 for (size_t chunk_idx = col_idx; chunk_idx < chunks.size (); chunk_idx += num_columns) {
883880 // Insert a true value for each dictionary page
884881 if (chunks[chunk_idx].num_dict_pages > 0 ) { _pass_page_mask.push_back (true ); }
@@ -888,21 +885,17 @@ void hybrid_scan_reader_impl::set_pass_page_mask(
888885
889886 // Make sure we have enough page mask for this column chunk
890887 CUDF_EXPECTS (
891- col_page_mask .size () >= num_inserted_data_pages + num_data_pages_this_col_chunk,
888+ data_page_mask .size () >= num_inserted_data_pages + num_data_pages_this_col_chunk,
892889 " Encountered invalid data page mask size" );
893890
894891 // Insert page mask for this column chunk
895892 _pass_page_mask.insert (
896893 _pass_page_mask.end (),
897- col_page_mask.begin () + num_inserted_data_pages,
898- col_page_mask.begin () + num_inserted_data_pages + num_data_pages_this_col_chunk);
899-
894+ data_page_mask.begin () + num_inserted_data_pages,
895+ data_page_mask.begin () + num_inserted_data_pages + num_data_pages_this_col_chunk);
900896 // Update the number of inserted data pages
901897 num_inserted_data_pages += num_data_pages_this_col_chunk;
902898 }
903- // Make sure we inserted exactly the number of data pages for this column
904- CUDF_EXPECTS (num_inserted_data_pages == col_page_mask.size (),
905- " Encountered mismatch in number of data pages and page mask size" );
906899 });
907900
908901 // Make sure we inserted exactly the number of pages for this pass
0 commit comments