@@ -62,6 +62,19 @@ Result<std::unique_ptr<PrefetchFileBatchReaderImpl>> PrefetchFileBatchReaderImpl
6262 const std::shared_ptr<Executor>& executor, bool initialize_read_ranges,
6363 PrefetchCacheMode prefetch_cache_mode, const CacheConfig& cache_config,
6464 const std::shared_ptr<MemoryPool>& pool) {
65+ return Create (data_file_path, /* data_file_size=*/ -1 , reader_builder, fs,
66+ prefetch_max_parallel_num, batch_size, prefetch_batch_count,
67+ enable_adaptive_prefetch_strategy, executor, initialize_read_ranges,
68+ prefetch_cache_mode, cache_config, pool);
69+ }
70+
71+ Result<std::unique_ptr<PrefetchFileBatchReaderImpl>> PrefetchFileBatchReaderImpl::Create (
72+ const std::string& data_file_path, int64_t data_file_size, const ReaderBuilder* reader_builder,
73+ const std::shared_ptr<FileSystem>& fs, uint32_t prefetch_max_parallel_num, int32_t batch_size,
74+ uint32_t prefetch_batch_count, bool enable_adaptive_prefetch_strategy,
75+ const std::shared_ptr<Executor>& executor, bool initialize_read_ranges,
76+ PrefetchCacheMode prefetch_cache_mode, const CacheConfig& cache_config,
77+ const std::shared_ptr<MemoryPool>& pool) {
6578 if (prefetch_max_parallel_num == 0 ) {
6679 return Status::Invalid (" prefetch max parallel num should be greater than 0." );
6780 }
@@ -83,16 +96,17 @@ Result<std::unique_ptr<PrefetchFileBatchReaderImpl>> PrefetchFileBatchReaderImpl
8396
8497 std::shared_ptr<ReadAheadCache> cache;
8598 if (prefetch_cache_mode != PrefetchCacheMode::NEVER ) {
86- PAIMON_ASSIGN_OR_RAISE (std::shared_ptr<InputStream> input_stream, fs->Open (data_file_path));
99+ PAIMON_ASSIGN_OR_RAISE (std::shared_ptr<InputStream> input_stream,
100+ fs->Open (data_file_path, data_file_size));
87101 cache = std::make_shared<ReadAheadCache>(input_stream, cache_config, pool);
88102 }
89103 std::vector<std::future<Result<std::unique_ptr<FileBatchReader>>>> futures;
90104 for (uint32_t i = 0 ; i < prefetch_max_parallel_num; i++) {
91105 futures.push_back (Via (executor.get (),
92- [&fs, &data_file_path, &reader_builder,
106+ [&fs, &data_file_path, data_file_size, &reader_builder,
93107 &cache]() -> Result<std::unique_ptr<FileBatchReader>> {
94108 PAIMON_ASSIGN_OR_RAISE (std::unique_ptr<InputStream> input_stream,
95- fs->Open (data_file_path));
109+ fs->Open (data_file_path, data_file_size ));
96110 auto cache_input_stream = std::make_shared<CacheInputStream>(
97111 std::move (input_stream), cache);
98112 return reader_builder->Build (cache_input_stream);
0 commit comments