summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_sample_from_random_cursor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/pipeline/document_source_sample_from_random_cursor.cpp')
-rw-r--r--src/mongo/db/pipeline/document_source_sample_from_random_cursor.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/mongo/db/pipeline/document_source_sample_from_random_cursor.cpp b/src/mongo/db/pipeline/document_source_sample_from_random_cursor.cpp
index f4b2299c9e8..9fc3b5bf105 100644
--- a/src/mongo/db/pipeline/document_source_sample_from_random_cursor.cpp
+++ b/src/mongo/db/pipeline/document_source_sample_from_random_cursor.cpp
@@ -52,6 +52,7 @@ DocumentSourceSampleFromRandomCursor::DocumentSourceSampleFromRandomCursor(
: DocumentSource(pExpCtx),
_size(size),
_idField(std::move(idField)),
+ _seenDocs(pExpCtx->getValueComparator().makeUnorderedValueSet()),
_nDocsInColl(nDocsInCollection) {}
const char* DocumentSourceSampleFromRandomCursor::getSourceName() const {
@@ -76,7 +77,7 @@ double smallestFromSampleOfUniform(PseudoRandom* prng, size_t N) {
DocumentSource::GetNextResult DocumentSourceSampleFromRandomCursor::getNext() {
pExpCtx->checkForInterrupt();
- if (_seenDocs->size() >= static_cast<size_t>(_size))
+ if (_seenDocs.size() >= static_cast<size_t>(_size))
return GetNextResult::makeEOF();
auto nextResult = getNextNonDuplicateDocument();
@@ -114,7 +115,7 @@ DocumentSource::GetNextResult DocumentSourceSampleFromRandomCursor::getNextNonDu
<< nextInput.getDocument().toString(),
!idField.missing());
- if (_seenDocs->insert(std::move(idField)).second) {
+ if (_seenDocs.insert(std::move(idField)).second) {
return nextInput;
}
LOG(1) << "$sample encountered duplicate document: "
@@ -147,10 +148,6 @@ DocumentSource::GetDepsReturn DocumentSourceSampleFromRandomCursor::getDependenc
return SEE_NEXT;
}
-void DocumentSourceSampleFromRandomCursor::doInjectExpressionContext() {
- _seenDocs = pExpCtx->getValueComparator().makeUnorderedValueSet();
-}
-
intrusive_ptr<DocumentSourceSampleFromRandomCursor> DocumentSourceSampleFromRandomCursor::create(
const intrusive_ptr<ExpressionContext>& expCtx,
long long size,
@@ -158,7 +155,6 @@ intrusive_ptr<DocumentSourceSampleFromRandomCursor> DocumentSourceSampleFromRand
long long nDocsInCollection) {
intrusive_ptr<DocumentSourceSampleFromRandomCursor> source(
new DocumentSourceSampleFromRandomCursor(expCtx, size, idField, nDocsInCollection));
- source->injectExpressionContext(expCtx);
return source;
}
} // mongo