diff --git a/src/Processors/Formats/Impl/ParquetFileMetaDataCache.cpp b/src/Processors/Formats/Impl/ParquetFileMetaDataCache.cpp index da8ad825f505..4aeb1d48bada 100644 --- a/src/Processors/Formats/Impl/ParquetFileMetaDataCache.cpp +++ b/src/Processors/Formats/Impl/ParquetFileMetaDataCache.cpp @@ -2,11 +2,21 @@ #if USE_PARQUET +#include + namespace DB { +size_t ParquetFileMetaDataWeightFunction::operator()(const parquet::FileMetaData & metadata) const +{ + /// TODO fix-me: using the size on disk is not ideal, but it is the simplest and best we can do for now. + /// this implementation is only used by the v1 reader, which is going to be deprecated and a new implementation for the v3 + /// reader will be added in the future. + return metadata.size(); +} + ParquetFileMetaDataCache::ParquetFileMetaDataCache() - : CacheBase(CurrentMetrics::end(), CurrentMetrics::end(), 0) + : CacheBase, ParquetFileMetaDataWeightFunction>(CurrentMetrics::end(), CurrentMetrics::end(), 0) {} ParquetFileMetaDataCache * ParquetFileMetaDataCache::instance() diff --git a/src/Processors/Formats/Impl/ParquetFileMetaDataCache.h b/src/Processors/Formats/Impl/ParquetFileMetaDataCache.h index fb5fc1bb0217..4578f2582391 100644 --- a/src/Processors/Formats/Impl/ParquetFileMetaDataCache.h +++ b/src/Processors/Formats/Impl/ParquetFileMetaDataCache.h @@ -16,7 +16,12 @@ class FileMetaData; namespace DB { -class ParquetFileMetaDataCache : public CacheBase +struct ParquetFileMetaDataWeightFunction +{ + size_t operator()(const parquet::FileMetaData & metadata) const; +}; + +class ParquetFileMetaDataCache : public CacheBase, ParquetFileMetaDataWeightFunction> { public: static ParquetFileMetaDataCache * instance();