diff options
author | Justin Seyster <justin.seyster@mongodb.com> | 2017-10-19 01:31:09 -0400 |
---|---|---|
committer | Justin Seyster <justin.seyster@mongodb.com> | 2017-10-19 01:31:09 -0400 |
commit | fc252a557434e988f63ea2dc54c06b7a508ef34f (patch) | |
tree | b776b864906b7f962a7572820905a421a622fc5b /src/mongo/db/exec/or.h | |
parent | 2f9f471cd5d5217023f9645fff83ff79167a8fbf (diff) | |
download | mongo-fc252a557434e988f63ea2dc54c06b7a508ef34f.tar.gz |
SERVER-26833 Non-blocking text queries when projection ignores score.
With this change, text queries use the non-blocking OR stage in place
of the blocking TEXT_OR stage when it is not necessary to compute the
text score (because the projection does not call for it).
We also removed the unnecessary MatchableTextDocument object with this
change. This object was used in the TEXT_OR stage to apply a filter to
index entries. The query planner adds search predicates as a filter in
the OR/TEXT_OR stage when they can be covered by the index, allowing
them to get filtered out before the full document need be examined
However, the OR stage uses an IndexMatchableDocument which does almost
the same thing. The only difference is that TextMatchableDocument will
fetch documents if the index does not cover the filter. Since that
should never happen (if the query planner is doing its job right), we
shouldn't need TextMatchableDocument.
Diffstat (limited to 'src/mongo/db/exec/or.h')
-rw-r--r-- | src/mongo/db/exec/or.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mongo/db/exec/or.h b/src/mongo/db/exec/or.h index c97f9d34909..84ded543c82 100644 --- a/src/mongo/db/exec/or.h +++ b/src/mongo/db/exec/or.h @@ -49,6 +49,8 @@ public: void addChild(PlanStage* child); + void addChildren(Children childrenToAdd); + bool isEOF() final; StageState doWork(WorkingSetID* out) final; |