diff --git a/include/utils.h b/include/utils.h index 195dd95ef..bb03d13f1 100644 --- a/include/utils.h +++ b/include/utils.h @@ -57,7 +57,7 @@ typedef int FileHandle; #define PBSTR "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||" #define PBWIDTH 60 -inline bool file_exists(const std::string &name, bool dirCheck = false) +inline bool file_exists_impl(const std::string &name, bool dirCheck = false) { int val; #ifndef _WINDOWS @@ -94,6 +94,29 @@ inline bool file_exists(const std::string &name, bool dirCheck = false) } } +inline bool file_exists(const std::string &name, bool dirCheck = false) +{ +#ifdef EXEC_ENV_OLS + bool exists = file_exists_impl(name, dirCheck); + if (exists) + { + return true; + } + if (!dirCheck) + { + // try with .enc extension + std::string enc_name = name + ENCRYPTED_EXTENSION; + return file_exists_impl(enc_name, dirCheck); + } + else + { + return exists; + } +#else + return file_exists_impl(name, dirCheck); +#endif +} + inline void open_file_to_write(std::ofstream &writer, const std::string &filename) { writer.exceptions(std::ofstream::failbit | std::ofstream::badbit); diff --git a/src/pq.cpp b/src/pq.cpp index 86c68ce0a..c59fc2dce 100644 --- a/src/pq.cpp +++ b/src/pq.cpp @@ -133,11 +133,13 @@ void FixedChunkPQTable::load_pq_centroid_bin(const char *pq_table_file, size_t n diskann::cout << "Loaded PQ Pivots: #ctrs: " << NUM_PQ_CENTROIDS << ", #dims: " << this->ndims << ", #chunks: " << this->n_chunks << std::endl; - if (file_exists(rotmat_file)) - { #ifdef EXEC_ENV_OLS + if (files.fileExists(rotmat_file)) + { diskann::load_bin(files, rotmat_file, (float *&)rotmat_tr, nr, nc); #else + if (file_exists(rotmat_file)) + { diskann::load_bin(rotmat_file, rotmat_tr, nr, nc); #endif if (nr != this->ndims || nc != this->ndims)