Public Member Functions | Friends | List of all members
cudf::io::parquet::experimental::hybrid_scan_metadata Class Reference

Shareable, pre-parsed Parquet file metadata for the Hybrid Scan reader. More...

#include <cudf/io/experimental/hybrid_scan.hpp>

Public Member Functions

 hybrid_scan_metadata (cudf::host_span< uint8_t const > footer_bytes, parquet_reader_options const &options)
 Parse and own Parquet file metadata from a span of footer bytes. More...
 
 hybrid_scan_metadata (FileMetaData const &parquet_metadata, parquet_reader_options const &options)
 Own Parquet file metadata from a pre-populated FileMetaData More...
 
 ~hybrid_scan_metadata ()
 Destructor for the shared Parquet metadata.
 
 hybrid_scan_metadata (hybrid_scan_metadata const &)=default
 Copy constructor.
 
 hybrid_scan_metadata (hybrid_scan_metadata &&)=default
 Move constructor.
 
hybrid_scan_metadataoperator= (hybrid_scan_metadata const &)=default
 Copy assignment operator. More...
 
hybrid_scan_metadataoperator= (hybrid_scan_metadata &&)=default
 Move assignment operator. More...
 

Friends

class hybrid_scan_reader
 

Detailed Description

Shareable, pre-parsed Parquet file metadata for the Hybrid Scan reader.

Parses the Parquet file metadata once so that multiple hybrid_scan_reader instances reading the same file can share it rather than each re-parsing and copying the row group metadata. The intended use is to read disjoint row-group ranges of a single file: construct one hybrid_scan_metadata per file and pass it to as many readers as there are ranges.

// Parse the metadata once
auto metadata = parquet::experimental::hybrid_scan_metadata{*footer_buffer, options};
// Construct lightweight readers that share it
auto reader_a = std::make_unique<parquet::experimental::hybrid_scan_reader>(metadata);
auto reader_b = std::make_unique<parquet::experimental::hybrid_scan_reader>(metadata);
Note
The metadata is immutable after setup_page_index() has been called (or immediately after construction if page index setup is skipped). Concurrent usage by multiple readers is thread safe. This handle does not support multi-source (multi-file) metadata.

Definition at line 81 of file hybrid_scan.hpp.

Constructor & Destructor Documentation

◆ hybrid_scan_metadata() [1/2]

cudf::io::parquet::experimental::hybrid_scan_metadata::hybrid_scan_metadata ( cudf::host_span< uint8_t const >  footer_bytes,
parquet_reader_options const &  options 
)

Parse and own Parquet file metadata from a span of footer bytes.

Parameters
footer_bytesHost span of Parquet file footer bytes
optionsParquet reader options

◆ hybrid_scan_metadata() [2/2]

cudf::io::parquet::experimental::hybrid_scan_metadata::hybrid_scan_metadata ( FileMetaData const &  parquet_metadata,
parquet_reader_options const &  options 
)

Own Parquet file metadata from a pre-populated FileMetaData

Parameters
parquet_metadataPre-populated Parquet file metadata
optionsParquet reader options

Member Function Documentation

◆ operator=() [1/2]

hybrid_scan_metadata& cudf::io::parquet::experimental::hybrid_scan_metadata::operator= ( hybrid_scan_metadata &&  )
default

Move assignment operator.

Returns
Reference to this object

◆ operator=() [2/2]

hybrid_scan_metadata& cudf::io::parquet::experimental::hybrid_scan_metadata::operator= ( hybrid_scan_metadata const &  )
default

Copy assignment operator.

Returns
Reference to this object

The documentation for this class was generated from the following file: