src/storage/source/UserSet.cc
vector<PageIteratorPtr>* UserSet::getIteratorsExtended(SetPtr sharedSet) {

     vector<PageIteratorPtr>* retVec = this->getIterators();
     //now we should retrieve the iterator for shared pages of this set
     PartitionedFilePtr sharedFile = sharedSet->getFile();
     int numPartitions = sharedFile->getNumPartitions();
     std::cout << "SharedFile has " << numPartitions << " partitions" << std::endl;
     PageIteratorPtr iterator = nullptr;
     for (int i = 0; i < numPartitions; i++) {
        iterator = make_shared<pdb::PartitionTensorBlockSharedPageIterator>(this->pageCache, file, sharedFile, i, dynamic_pointer_cast<pdb::SharedFFMatrixBlockSet>(sharedSet), dbId, typeId, setId);
        retVec->push_back(iterator);
     }

     return retVec;

    
}
/**
     * Get a set of iterators for scanning the data in the set, including the pages that are shared by the set but not stored in the set.
     * The set of iterators will include:
     * -- 1 iterator to scan data in input buffer;
     * -- K iterators to scan data in file partitions, assuming there are K partitions.
     * -- K iterators to scan shared pages in file partitions, assuming there are K partitions
     * IMPORTANT: user needs to delete the returned vector!!!
     */
Get a set of iterators for scanning the data in the set, including the pages that are shared by the set but not stored in the set.
The set of iterators will include:
1 iterator to scan data in input buffer;
K iterators to scan data in file partitions, assuming there are K partitions.
K iterators to scan shared pages in file partitions, assuming there are K partitions
IMPORTANT: user needs to delete the returned vector
Get a set of iterators for scanning the data in the set including the pages that are shared by the set but not stored in the set . The set of iterators will include : 1 iterator to scan data in input buffer ; K iterators to scan data in file partitions assuming there are K partitions . K iterators to scan shared pages in file partitions assuming there are K partitions IMPORTANT : user needs to delete the returned vector
vector<PageIteratorPtr>* UserSet::getIteratorsExtended(SetPtr sharedSet) {
     vector<PageIteratorPtr>* retVec = this->getIterators();
     PartitionedFilePtr sharedFile = sharedSet->getFile();
     int numPartitions = sharedFile->getNumPartitions();
     std::cout << "SharedFile has " << numPartitions << " partitions" << std::endl;
     PageIteratorPtr iterator = nullptr;
     for (int i = 0; i < numPartitions; i++) {
        iterator = make_shared<pdb::PartitionTensorBlockSharedPageIterator>(this->pageCache, file, sharedFile, i, dynamic_pointer_cast<pdb::SharedFFMatrixBlockSet>(sharedSet), dbId, typeId, setId);
        retVec->push_back(iterator);
     }
     return retVec;
}
vector < PageIteratorPtr > * UserSet :: getIteratorsExtended ( SetPtr sharedSet ) { vector < PageIteratorPtr > * retVec = this -> getIterators ( ) ; PartitionedFilePtr sharedFile = sharedSet -> getFile ( ) ; int numPartitions = sharedFile -> getNumPartitions ( ) ; std :: cout << " " << numPartitions << " " << std :: endl ; PageIteratorPtr iterator = nullptr ; for ( int i = 0 ; i < numPartitions ; i ++ ) { iterator = make_shared < pdb :: PartitionTensorBlockSharedPageIterator > ( this -> pageCache , file , sharedFile , i , dynamic_pointer_cast < pdb :: SharedFFMatrixBlockSet > ( sharedSet ) , dbId , typeId , setId ) ; retVec -> push_back ( iterator ) ; } return retVec ; }
Get a set of iterators for scanning the data in the set, including the pages that are shared by the set but not stored in the set.
Get a set of iterators for scanning the data in the set including the pages that are shared by the set but not stored in the set .
//now we should retrieve the iterator for shared pages of this set