@@ -42,7 +42,7 @@ struct ParquetMetaDataOperatorData : public GlobalTableFunctionState {
4242 ColumnDataScanState scan_state;
4343
4444 MultiFileListScanData file_list_scan;
45- string current_file;
45+ OpenFileInfo current_file;
4646
4747public:
4848 static void BindMetaData (vector<LogicalType> &return_types, vector<string> &names);
@@ -51,11 +51,13 @@ struct ParquetMetaDataOperatorData : public GlobalTableFunctionState {
5151 static void BindFileMetaData (vector<LogicalType> &return_types, vector<string> &names);
5252 static void BindBloomProbe (vector<LogicalType> &return_types, vector<string> &names);
5353
54- void LoadRowGroupMetadata (ClientContext &context, const vector<LogicalType> &return_types, const string &file_path);
55- void LoadSchemaData (ClientContext &context, const vector<LogicalType> &return_types, const string &file_path);
56- void LoadKeyValueMetaData (ClientContext &context, const vector<LogicalType> &return_types, const string &file_path);
57- void LoadFileMetaData (ClientContext &context, const vector<LogicalType> &return_types, const string &file_path);
58- void ExecuteBloomProbe (ClientContext &context, const vector<LogicalType> &return_types, const string &file_path,
54+ void LoadRowGroupMetadata (ClientContext &context, const vector<LogicalType> &return_types,
55+ const OpenFileInfo &file);
56+ void LoadSchemaData (ClientContext &context, const vector<LogicalType> &return_types, const OpenFileInfo &file);
57+ void LoadKeyValueMetaData (ClientContext &context, const vector<LogicalType> &return_types,
58+ const OpenFileInfo &file);
59+ void LoadFileMetaData (ClientContext &context, const vector<LogicalType> &return_types, const OpenFileInfo &file);
60+ void ExecuteBloomProbe (ClientContext &context, const vector<LogicalType> &return_types, const OpenFileInfo &file,
5961 const string &column_name, const Value &probe);
6062};
6163
@@ -209,10 +211,10 @@ Value ConvertParquetStats(const LogicalType &type, const ParquetColumnSchema &sc
209211}
210212
211213void ParquetMetaDataOperatorData::LoadRowGroupMetadata (ClientContext &context, const vector<LogicalType> &return_types,
212- const string &file_path ) {
214+ const OpenFileInfo &file ) {
213215 collection.Reset ();
214216 ParquetOptions parquet_options (context);
215- ParquetReader reader (context, file_path , parquet_options);
217+ ParquetReader reader (context, file. path , parquet_options);
216218 idx_t count = 0 ;
217219 DataChunk current_chunk;
218220 current_chunk.Initialize (context, return_types);
@@ -242,7 +244,7 @@ void ParquetMetaDataOperatorData::LoadRowGroupMetadata(ClientContext &context, c
242244 auto &column_type = column_schema.type ;
243245
244246 // file_name, LogicalType::VARCHAR
245- current_chunk.SetValue (0 , count, file_path );
247+ current_chunk.SetValue (0 , count, file. path );
246248
247249 // row_group_id, LogicalType::BIGINT
248250 current_chunk.SetValue (1 , count, Value::BIGINT (UnsafeNumericCast<int64_t >(row_group_idx)));
@@ -452,10 +454,10 @@ Value ParquetLogicalTypeToString(const duckdb_parquet::LogicalType &type, bool i
452454}
453455
454456void ParquetMetaDataOperatorData::LoadSchemaData (ClientContext &context, const vector<LogicalType> &return_types,
455- const string &file_path ) {
457+ const OpenFileInfo &file ) {
456458 collection.Reset ();
457459 ParquetOptions parquet_options (context);
458- auto reader = make_uniq<ParquetReader>(context, file_path , parquet_options);
460+ auto reader = make_uniq<ParquetReader>(context, file. path , parquet_options);
459461 idx_t count = 0 ;
460462 DataChunk current_chunk;
461463 current_chunk.Initialize (context, return_types);
@@ -464,7 +466,7 @@ void ParquetMetaDataOperatorData::LoadSchemaData(ClientContext &context, const v
464466 auto &column = meta_data->schema [col_idx];
465467
466468 // file_name, LogicalType::VARCHAR
467- current_chunk.SetValue (0 , count, file_path );
469+ current_chunk.SetValue (0 , count, file. path );
468470
469471 // name, LogicalType::VARCHAR
470472 current_chunk.SetValue (1 , count, column.name );
@@ -526,10 +528,10 @@ void ParquetMetaDataOperatorData::BindKeyValueMetaData(vector<LogicalType> &retu
526528}
527529
528530void ParquetMetaDataOperatorData::LoadKeyValueMetaData (ClientContext &context, const vector<LogicalType> &return_types,
529- const string &file_path ) {
531+ const OpenFileInfo &file ) {
530532 collection.Reset ();
531533 ParquetOptions parquet_options (context);
532- auto reader = make_uniq<ParquetReader>(context, file_path , parquet_options);
534+ auto reader = make_uniq<ParquetReader>(context, file. path , parquet_options);
533535 idx_t count = 0 ;
534536 DataChunk current_chunk;
535537 current_chunk.Initialize (context, return_types);
@@ -538,7 +540,7 @@ void ParquetMetaDataOperatorData::LoadKeyValueMetaData(ClientContext &context, c
538540 for (idx_t col_idx = 0 ; col_idx < meta_data->key_value_metadata .size (); col_idx++) {
539541 auto &entry = meta_data->key_value_metadata [col_idx];
540542
541- current_chunk.SetValue (0 , count, Value (file_path ));
543+ current_chunk.SetValue (0 , count, Value (file. path ));
542544 current_chunk.SetValue (1 , count, Value::BLOB_RAW (entry.key ));
543545 current_chunk.SetValue (2 , count, Value::BLOB_RAW (entry.value ));
544546
@@ -583,16 +585,16 @@ void ParquetMetaDataOperatorData::BindFileMetaData(vector<LogicalType> &return_t
583585}
584586
585587void ParquetMetaDataOperatorData::LoadFileMetaData (ClientContext &context, const vector<LogicalType> &return_types,
586- const string &file_path ) {
588+ const OpenFileInfo &file ) {
587589 collection.Reset ();
588590 ParquetOptions parquet_options (context);
589- auto reader = make_uniq<ParquetReader>(context, file_path , parquet_options);
591+ auto reader = make_uniq<ParquetReader>(context, file. path , parquet_options);
590592 DataChunk current_chunk;
591593 current_chunk.Initialize (context, return_types);
592594 auto meta_data = reader->GetFileMetadata ();
593595
594596 // file_name
595- current_chunk.SetValue (0 , 0 , Value (file_path ));
597+ current_chunk.SetValue (0 , 0 , Value (file. path ));
596598 // created_by
597599 current_chunk.SetValue (1 , 0 , ParquetElementStringVal (meta_data->created_by , meta_data->__isset .created_by ));
598600 // num_rows
@@ -628,11 +630,11 @@ void ParquetMetaDataOperatorData::BindBloomProbe(vector<LogicalType> &return_typ
628630}
629631
630632void ParquetMetaDataOperatorData::ExecuteBloomProbe (ClientContext &context, const vector<LogicalType> &return_types,
631- const string &file_path , const string &column_name,
633+ const OpenFileInfo &file , const string &column_name,
632634 const Value &probe) {
633635 collection.Reset ();
634636 ParquetOptions parquet_options (context);
635- auto reader = make_uniq<ParquetReader>(context, file_path , parquet_options);
637+ auto reader = make_uniq<ParquetReader>(context, file. path , parquet_options);
636638 idx_t count = 0 ;
637639 DataChunk current_chunk;
638640 current_chunk.Initialize (context, return_types);
@@ -646,7 +648,7 @@ void ParquetMetaDataOperatorData::ExecuteBloomProbe(ClientContext &context, cons
646648 }
647649
648650 if (!probe_column_idx.IsValid ()) {
649- throw InvalidInputException (" Column %s not found in %s" , column_name, file_path );
651+ throw InvalidInputException (" Column %s not found in %s" , column_name, file. path );
650652 }
651653
652654 auto &allocator = Allocator::DefaultAllocator ();
@@ -664,7 +666,7 @@ void ParquetMetaDataOperatorData::ExecuteBloomProbe(ClientContext &context, cons
664666
665667 auto bloom_excludes =
666668 ParquetStatisticsUtils::BloomFilterExcludes (filter, column.meta_data , *protocol, allocator);
667- current_chunk.SetValue (0 , count, Value (file_path ));
669+ current_chunk.SetValue (0 , count, Value (file. path ));
668670 current_chunk.SetValue (1 , count, Value::BIGINT (NumericCast<int64_t >(row_group_idx)));
669671 current_chunk.SetValue (2 , count, Value::BOOLEAN (bloom_excludes));
670672
0 commit comments