| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Co-authored-by: Justin Seyster <justin.seyster@mongodb.com>
Co-authored-by: Jacob Evans <jacob.evans@10gen.com>
|
|
|
|
| |
in a user's request
|
| |
|
|
|
|
| |
AggregationRequest
|
| |
|
|
|
|
| |
within a sub-pipeline
|
|
|
|
| |
confusion with $merge
|
|
|
|
| |
This reverts commit 1b00abfda7592d701f632b9550f973c56cea818f.
|
|
|
|
| |
encryption in agg
|
| |
|
|
|
|
|
|
|
| |
This reverts commit aad70256024c8447344a4d7f1cfdda742d1904ee.
This reverts commit 3765a3200adb31239fad3abaeddebe81e5aa9280.
This reverts commit f16366d55edae0bf02cd3d0a532e31c7c938e8db.
This reverts commit 33598e48f9be86c16990051934d4e72f073c2b86.
|
| |
|
|
|
|
|
| |
This restriction only applies to $out with modes "insertDocuments" and
"replaceDocuments".
|
|
|
|
|
|
| |
Remove leading comments that are just stating the filename.
Move any file-level comments below the copyright banner.
Remove leading blank lines.
|
|
|
|
|
| |
Allows an $out stage to run in parallel on all shards if the target
collection is sharded and so is the input collection to the aggregate.
|
|
|
|
| |
This reverts commit 0cb2195939494660334db8e9d0a52509caeb621c.
|
| |
|
| |
|
|
|
|
| |
namespaces in an aggregation
|
|
|
|
|
|
|
|
|
|
| |
This commit makes it so that aggregations will always use a
$mergeCursors as a wrapper around a AsyncResultsMerger, which is new
behavior for mongos. As part of this refactor, we can delete the concept
of a 'merging presorted' $sort stage (which is now handled by the
AsyncResultsMerger) and delete the DocumentSourceRouterAdapter stage
which talked to a RouterStageMerge, instead directly using a
$mergeCursors stage.
|
| |
|
| |
|
|
|
|
|
|
| |
Closes #1237
Signed-off-by: Charlie Swanson <charlie.swanson@mongodb.com>
|
| |
|
| |
|
| |
|
|
|
|
| |
requirements, given pipeline split state
|
| |
|
|
|
|
| |
This reverts commit babab967892f81f3107903cb41672503de791998.
|
|
|
|
| |
This reverts commit 2431e1356823d898ef8af16997d6f63b65b385a5.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Ensures that a collection lock is held in at least MODE_IS while
deregistering a PlanExecutor from the cursor manager. Introduces new
PlanExecutor::dispose() and ClientCursor::dispose() methods that must be
called before destruction of those classes, and ensures they are called
before destruction. These calls will thread an OperationContext all the
way through to DocumentSource::dispose() for each stage in a Pipeline,
which will give DocumentSourceCursor a chance to acquire locks and
deregister its PlanExecutor if necessary.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
explain
Like other explainable commands, aggregate can now be
explained using the explain command, e.g.
db.runCommand({explain: {aggregate: ...}, verbosity:
"executionStats"}). The existing explain:true flag
corresponds to "queryPlanner" mode and is still supported.
However, explain:true cannot be specified when explaining
aggregate via the explain command.
Additional execution information is provided only in the
$cursor section of the aggregation explain output. Having
aggregation stages themselves track and report execution
info is further work.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These methods were formally used to propagate a new ExpressionContext to
stages, accumulators, or expressions which potentially needed to
comparisons. Originally, this was necessary since Pipeline parsing
happened outside of the collection lock and thus could not determine if
there was a default collation on the collection. This meant that the
collation could change after parsing and any operators that might
compare strings would need to know about it.
We have since moved parsing within the lock, so the collation can be
known at parse time and the ExpressionContext should not change. This
patch requires an ExpressionContext at construction time, and disallows
changing the collation on an ExpressionContext.
|
|
|
|
|
|
| |
This provides a way to do pre-parse validity checks. Full
parsing of the Pipeline must be done under the collection
lock, when the collation is known.
|
|
|
|
|
| |
This approach removes the need to buffer all documents in memory, thus
removing concerns about spilling intermediate results to disk.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Changes the Document/Value library to require comparisons
to be made in the context of a comparator object. This is
prep work for full collation support in the aggregation
system.
- Adds injectExpressionContext() to propagate the
ExpressionContext containing the comparator object to all
DocumentSource, Accumulator, and Expression instances
involved in the Pipeline.
|
| |
|
|
|