Storage Engine API
mongo::KVCollectionCatalogEntry Class Referencefinal

#include <kv_collection_catalog_entry.h>

Inheritance diagram for mongo::KVCollectionCatalogEntry:
mongo::BSONCollectionCatalogEntry mongo::CollectionCatalogEntry

Classes

class  AddIndexChange
 
class  RemoveIndexChange
 

Public Member Functions

 KVCollectionCatalogEntry (KVEngine *engine, KVCatalog *catalog, StringData ns, StringData ident, std::unique_ptr< RecordStore > rs)
 
 ~KVCollectionCatalogEntry () final
 
int getMaxAllowedIndexes () const final
 
bool setIndexIsMultikey (OperationContext *opCtx, StringData indexName, const MultikeyPaths &multikeyPaths) final
 Sets the index identified by 'indexName' to be multikey. More...
 
void setIndexHead (OperationContext *opCtx, StringData indexName, const RecordId &newHead) final
 
Status removeIndex (OperationContext *opCtx, StringData indexName) final
 
Status prepareForIndexBuild (OperationContext *opCtx, const IndexDescriptor *spec, bool isBackgroundSecondaryBuild) final
 
void indexBuildSuccess (OperationContext *opCtx, StringData indexName) final
 
void updateTTLSetting (OperationContext *opCtx, StringData idxName, long long newExpireSeconds) final
 
void updateFlags (OperationContext *opCtx, int newValue) final
 Sets the flags field of CollectionOptions to newValue. More...
 
void updateIndexMetadata (OperationContext *opCtx, const IndexDescriptor *desc) final
 
void updateValidator (OperationContext *opCtx, const BSONObj &validator, StringData validationLevel, StringData validationAction) final
 Updates the validator for this collection. More...
 
void setIsTemp (OperationContext *opCtx, bool isTemp)
 Updates the 'temp' setting for this collection. More...
 
void updateCappedSize (OperationContext *, long long int) final
 Updates size of a capped Collection. More...
 
void addUUID (OperationContext *opCtx, CollectionUUID uuid, Collection *coll) final
 Assigns a new UUID to this collection. More...
 
bool isEqualToMetadataUUID (OperationContext *opCtx, OptionalCollectionUUID uuid) final
 Compare the UUID argument to the UUID obtained from the metadata. More...
 
RecordStoregetRecordStore ()
 
const RecordStoregetRecordStore () const
 
- Public Member Functions inherited from mongo::BSONCollectionCatalogEntry
 BSONCollectionCatalogEntry (StringData ns)
 
virtual ~BSONCollectionCatalogEntry ()
 
virtual CollectionOptions getCollectionOptions (OperationContext *opCtx) const
 
virtual int getTotalIndexCount (OperationContext *opCtx) const
 
virtual int getCompletedIndexCount (OperationContext *opCtx) const
 
virtual BSONObj getIndexSpec (OperationContext *opCtx, StringData idxName) const
 
virtual void getAllIndexes (OperationContext *opCtx, std::vector< std::string > *names) const
 
virtual void getReadyIndexes (OperationContext *opCtx, std::vector< std::string > *names) const
 
virtual void getAllUniqueIndexes (OperationContext *opCtx, std::vector< std::string > *names) const
 
virtual bool isIndexMultikey (OperationContext *opCtx, StringData indexName, MultikeyPaths *multikeyPaths) const
 Returns true if the index identified by 'indexName' is multikey, and returns false otherwise. More...
 
virtual RecordId getIndexHead (OperationContext *opCtx, StringData indexName) const
 
virtual bool isIndexReady (OperationContext *opCtx, StringData indexName) const
 
virtual KVPrefix getIndexPrefix (OperationContext *opCtx, StringData indexName) const
 
- Public Member Functions inherited from mongo::CollectionCatalogEntry
 CollectionCatalogEntry (StringData ns)
 
virtual ~CollectionCatalogEntry ()
 
const NamespaceString & ns () const
 

Protected Member Functions

MetaData _getMetaData (OperationContext *opCtx) const final
 

Private Attributes

KVEngine_engine
 
KVCatalog_catalog
 
std::string _ident
 
std::unique_ptr< RecordStore_recordStore
 

Constructor & Destructor Documentation

◆ KVCollectionCatalogEntry()

mongo::KVCollectionCatalogEntry::KVCollectionCatalogEntry ( KVEngine engine,
KVCatalog catalog,
StringData  ns,
StringData  ident,
std::unique_ptr< RecordStore rs 
)

◆ ~KVCollectionCatalogEntry()

mongo::KVCollectionCatalogEntry::~KVCollectionCatalogEntry ( )
final

Member Function Documentation

◆ _getMetaData()

BSONCollectionCatalogEntry::MetaData mongo::KVCollectionCatalogEntry::_getMetaData ( OperationContext *  opCtx) const
finalprotectedvirtual

◆ addUUID()

void mongo::KVCollectionCatalogEntry::addUUID ( OperationContext *  opCtx,
CollectionUUID  uuid,
Collection coll 
)
finalvirtual

Assigns a new UUID to this collection.

All collections must have UUIDs, so this is called if a collection erroneously does not have a UUID.

Implements mongo::CollectionCatalogEntry.

◆ getMaxAllowedIndexes()

int mongo::KVCollectionCatalogEntry::getMaxAllowedIndexes ( ) const
inlinefinalvirtual

◆ getRecordStore() [1/2]

RecordStore* mongo::KVCollectionCatalogEntry::getRecordStore ( )
inline

◆ getRecordStore() [2/2]

const RecordStore* mongo::KVCollectionCatalogEntry::getRecordStore ( ) const
inline

◆ indexBuildSuccess()

void mongo::KVCollectionCatalogEntry::indexBuildSuccess ( OperationContext *  opCtx,
StringData  indexName 
)
finalvirtual

◆ isEqualToMetadataUUID()

bool mongo::KVCollectionCatalogEntry::isEqualToMetadataUUID ( OperationContext *  opCtx,
OptionalCollectionUUID  uuid 
)
finalvirtual

Compare the UUID argument to the UUID obtained from the metadata.

Return true if they are equal, false otherwise. uuid can become a CollectionUUID once MMAPv1 is removed.

Implements mongo::CollectionCatalogEntry.

◆ prepareForIndexBuild()

Status mongo::KVCollectionCatalogEntry::prepareForIndexBuild ( OperationContext *  opCtx,
const IndexDescriptor *  spec,
bool  isBackgroundSecondaryBuild 
)
finalvirtual

◆ removeIndex()

Status mongo::KVCollectionCatalogEntry::removeIndex ( OperationContext *  opCtx,
StringData  indexName 
)
finalvirtual

◆ setIndexHead()

void mongo::KVCollectionCatalogEntry::setIndexHead ( OperationContext *  opCtx,
StringData  indexName,
const RecordId &  newHead 
)
finalvirtual

◆ setIndexIsMultikey()

bool mongo::KVCollectionCatalogEntry::setIndexIsMultikey ( OperationContext *  opCtx,
StringData  indexName,
const MultikeyPaths &  multikeyPaths 
)
finalvirtual

Sets the index identified by 'indexName' to be multikey.

If 'multikeyPaths' is non-empty, then it must be a vector with size equal to the number of elements in the index key pattern. Additionally, at least one path component of the indexed fields must cause this index to be multikey.

This function returns true if the index metadata has changed, and returns false otherwise.

Implements mongo::CollectionCatalogEntry.

◆ setIsTemp()

void mongo::KVCollectionCatalogEntry::setIsTemp ( OperationContext *  opCtx,
bool  isTemp 
)
virtual

Updates the 'temp' setting for this collection.

Implements mongo::CollectionCatalogEntry.

◆ updateCappedSize()

void mongo::KVCollectionCatalogEntry::updateCappedSize ( OperationContext *  opCtx,
long long  size 
)
finalvirtual

Updates size of a capped Collection.

Implements mongo::CollectionCatalogEntry.

◆ updateFlags()

void mongo::KVCollectionCatalogEntry::updateFlags ( OperationContext *  opCtx,
int  newValue 
)
finalvirtual

Sets the flags field of CollectionOptions to newValue.

Subsequent calls to getCollectionOptions should have flags==newValue and flagsSet==true.

Implements mongo::CollectionCatalogEntry.

◆ updateIndexMetadata()

void mongo::KVCollectionCatalogEntry::updateIndexMetadata ( OperationContext *  opCtx,
const IndexDescriptor *  desc 
)
finalvirtual

Reimplemented from mongo::CollectionCatalogEntry.

◆ updateTTLSetting()

void mongo::KVCollectionCatalogEntry::updateTTLSetting ( OperationContext *  opCtx,
StringData  idxName,
long long  newExpireSeconds 
)
finalvirtual

◆ updateValidator()

void mongo::KVCollectionCatalogEntry::updateValidator ( OperationContext *  opCtx,
const BSONObj &  validator,
StringData  validationLevel,
StringData  validationAction 
)
finalvirtual

Updates the validator for this collection.

An empty validator removes all validation.

Implements mongo::CollectionCatalogEntry.

Member Data Documentation

◆ _catalog

KVCatalog* mongo::KVCollectionCatalogEntry::_catalog
private

◆ _engine

KVEngine* mongo::KVCollectionCatalogEntry::_engine
private

◆ _ident

std::string mongo::KVCollectionCatalogEntry::_ident
private

◆ _recordStore

std::unique_ptr<RecordStore> mongo::KVCollectionCatalogEntry::_recordStore
private

The documentation for this class was generated from the following files: