33 #include <type_traits> 39 class OperationContext;
80 kPathLevelMultikeyTracking = 1 << 0,
101 static std::unique_ptr<FeatureTracker>
get(OperationContext*
opCtx,
113 static std::unique_ptr<FeatureTracker>
create(OperationContext* opCtx,
KVCatalog* catalog);
NonRepairableFeature
Bit flags representing whether a particular feature is enabled on a least one collection or index in ...
Definition: kv_catalog_feature_tracker.h:63
NonRepairableFeatureMask nonRepairableFeatures
Definition: kv_catalog_feature_tracker.h:172
FeatureTracker(KVCatalog *catalog, RecordId rid)
Definition: kv_catalog_feature_tracker.h:182
KVCatalog * _catalog
Definition: kv_catalog_feature_tracker.h:184
Copyright (C) 2014 MongoDB Inc.
Definition: bson_collection_catalog_entry.cpp:38
void markRepairableFeatureAsInUse(OperationContext *opCtx, RepairableFeature feature)
Sets the specified repairable feature as being enabled on at least one collection or index in the dat...
Definition: kv_catalog.cpp:245
OperationContext Database StringData BSONObj CollectionOptions::ParseKind bool const BSONObj &idIndex Status
Definition: database_impl.cpp:956
static bool isFeatureDocument(BSONObj obj)
Returns true if 'obj' represents the contents of the feature document that was previously inserted in...
Definition: kv_catalog.cpp:168
void putInfo(OperationContext *opCtx, const FeatureBits &versionInfo)
Definition: kv_catalog.cpp:293
void setUsedRepairableFeaturesMaskForTestingOnly(RepairableFeatureMask mask)
Definition: kv_catalog_feature_tracker.h:167
void markNonRepairableFeatureAsInUse(OperationContext *opCtx, NonRepairableFeature feature)
Sets the specified non-repairable feature as being enabled on at least one collection or index in the...
Definition: kv_catalog.cpp:225
bool isRepairableFeatureInUse(OperationContext *opCtx, RepairableFeature feature) const
Returns true if 'feature' is tracked in the document, and returns false otherwise.
Definition: kv_catalog.cpp:239
Definition: kv_catalog.h:49
RepairableFeatureMask repairableFeatures
Definition: kv_catalog_feature_tracker.h:173
std::underlying_type< RepairableFeature >::type RepairableFeatureMask
Definition: kv_catalog_feature_tracker.h:84
void markRepairableFeatureAsNotInUse(OperationContext *opCtx, RepairableFeature feature)
Sets the specified repairable feature as not being enabled on any collection or index in the data fil...
Definition: kv_catalog.cpp:252
bool isNonRepairableFeatureInUse(OperationContext *opCtx, NonRepairableFeature feature) const
Returns true if 'feature' is tracked in the document, and returns false otherwise.
Definition: kv_catalog.cpp:219
Definition: kv_catalog_feature_tracker.h:171
void markNonRepairableFeatureAsNotInUse(OperationContext *opCtx, NonRepairableFeature feature)
Sets the specified non-repairable feature as not being enabled on any collection or index in the data...
Definition: kv_catalog.cpp:232
Manages the contents of a document in the KVCatalog used to restrict downgrade compatibility.
Definition: kv_catalog_feature_tracker.h:53
static std::unique_ptr< FeatureTracker > create(OperationContext *opCtx, KVCatalog *catalog)
Returns a FeatureTracker instance to manage the contents of a feature document.
Definition: kv_catalog.cpp:213
NonRepairableFeatureMask _usedNonRepairableFeaturesMask
Definition: kv_catalog_feature_tracker.h:187
std::underlying_type< NonRepairableFeature >::type NonRepairableFeatureMask
Definition: kv_catalog_feature_tracker.h:68
Collection *const OperationContext *const opCtx
Definition: collection_impl.cpp:80
FeatureBits getInfo(OperationContext *opCtx) const
Definition: kv_catalog.cpp:259
RecordId _rid
Definition: kv_catalog_feature_tracker.h:185
RepairableFeatureMask _usedRepairableFeaturesMask
Definition: kv_catalog_feature_tracker.h:190
Status isCompatibleWithCurrentCode(OperationContext *opCtx) const
Returns whethers the data files are compatible with the current code:
Definition: kv_catalog.cpp:176
RepairableFeature
Bit flags representing whether a particular feature is enabled on a least one collection or index in ...
Definition: kv_catalog_feature_tracker.h:79
void setUsedNonRepairableFeaturesMaskForTestingOnly(NonRepairableFeatureMask mask)
Definition: kv_catalog_feature_tracker.h:163