summaryrefslogtreecommitdiff
path: root/src/mongo/db/index/wildcard_key_generator.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/index/wildcard_key_generator.h')
-rw-r--r--src/mongo/db/index/wildcard_key_generator.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mongo/db/index/wildcard_key_generator.h b/src/mongo/db/index/wildcard_key_generator.h
index 333ca9dcced..31f8177b081 100644
--- a/src/mongo/db/index/wildcard_key_generator.h
+++ b/src/mongo/db/index/wildcard_key_generator.h
@@ -31,6 +31,7 @@
#include "mongo/db/exec/wildcard_projection.h"
#include "mongo/db/field_ref.h"
+#include "mongo/db/index/btree_key_generator.h"
#include "mongo/db/query/collation/collator_interface.h"
#include "mongo/db/storage/key_string.h"
#include "mongo/db/storage/sorted_data_interface.h"
@@ -90,6 +91,7 @@ private:
BSONObj obj,
bool objIsArray,
FieldRef* path,
+ KeyStringSet* nonWildcardKeys,
KeyStringSet::sequence_type* keys,
KeyStringSet::sequence_type* multikeyPaths,
boost::optional<RecordId> id) const;
@@ -98,9 +100,15 @@ private:
void _addMultiKey(SharedBufferFragmentBuilder& pooledBufferBuilder,
const FieldRef& fullPath,
KeyStringSet::sequence_type* multikeyPaths) const;
+ void _addWildcard(KeyString::PooledBuilder& keyString,
+ BSONElement elem,
+ const FieldRef& fullPath,
+ KeyStringSet::sequence_type* keys,
+ boost::optional<RecordId> id) const;
void _addKey(SharedBufferFragmentBuilder& pooledBufferBuilder,
BSONElement elem,
const FieldRef& fullPath,
+ KeyStringSet* nonWildcardKeys,
KeyStringSet::sequence_type* keys,
boost::optional<RecordId> id) const;
@@ -109,11 +117,13 @@ private:
BSONElement elem,
const FieldRef& fullPath,
bool enclosingObjIsArray,
+ KeyStringSet* nonWildcardKeys,
KeyStringSet::sequence_type* keys,
boost::optional<RecordId> id) const;
bool _addKeyForEmptyLeaf(SharedBufferFragmentBuilder& pooledBufferBuilder,
BSONElement elem,
const FieldRef& fullPath,
+ KeyStringSet* nonWildcardKeys,
KeyStringSet::sequence_type* keys,
boost::optional<RecordId> id) const;
@@ -122,5 +132,7 @@ private:
const BSONObj _keyPattern;
const KeyString::Version _keyStringVersion;
const Ordering _ordering;
+
+ std::unique_ptr<BtreeKeyGenerator> _indexKeyGen;
};
} // namespace mongo