Commit Graph

337 Commits

Author SHA1 Message Date
Charlie Swanson
52cd830b71 SERVER-25473 Inject ExpressionContext before optimizing pipeline. 2016-08-11 18:25:07 -04:00
Carly Robison
5a83f95657 SERVER-5781 addFields stage.
This aggregation stage allows the addition of computed fields to a document while preserving all existing fields.
2016-08-11 10:49:43 -04:00
Max Hirschhorn
fad11e0917 SERVER-24769 Add support for $lookup and $graphLookup on a view. 2016-08-10 20:20:19 -04:00
David Storch
d9bb24e5f5 SERVER-25139 make $graphLookup's cache collation-aware
Ensures that comparisons made during graph traversal respect
the collation. Deduplication using _id, however, does not
use the collation, in order to ensure that node identity is
preserved.
2016-08-10 16:53:20 -04:00
Max Hirschhorn
089b61b649 SERVER-25139 Add tests to verify that $lookup respects the collation. 2016-08-04 16:07:58 -04:00
Max Hirschhorn
5149b0f8a5 SERVER-25005 Use Pipeline to execute $lookup and $graphLookup.
Replaces the usages of DBDirectClient::query() in DocumentSourceLookUp
and DocumentSourceGraphLookUp to instead parse and execute a Pipeline.

Simplifies the registration process of the "inner" plan execution in an
aggregation pipeline. The DocumentSourceCursor class now owns its
PlanExecutor and the PipelineProxyStage class no longer has a
std::weak_ptr to it. The "inner" plan executor is registered with the
CursorManager of the underlying Collection and will receive invalidation
notifications if a catalog operation occurs.
2016-08-04 12:49:28 -04:00
Max Hirschhorn
bb273eadd4 SERVER-25419 Make the dependency of mongos on aggregation explicit. 2016-08-04 09:16:55 -04:00
Carly Robison
dd60225291 SERVER-23313 add replaceRoot aggregation stage
replaceRoot promotes a subdocument to the top level
2016-07-29 10:05:35 -04:00
Sally McNichols
39d63ea21d SERVER-24152 add $bucketAuto aggregation stage 2016-07-26 17:52:36 -04:00
David Storch
b739dc09fe SERVER-23349 add collation support to $geoNear agg stage 2016-07-26 13:33:26 -07:00
David Storch
a21039e4bf SERVER-23349 add integration tests for aggregation stages respecting the collation 2016-07-26 11:28:08 -07:00
David Storch
56555dd1f9 SERVER-23349 add a test for aggregation expressions respecting the collation 2016-07-26 08:10:04 -07:00
David Storch
0c8085729e SERVER-23349 add tests for $group and accumulators using collation 2016-07-21 17:54:48 -04:00
Charlie Swanson
e420c60e6c SERVER-23073 Reliably detect concurrent changes to $out collection.
A $out stage will write to a temporary collection, and then rename into
the target collection. If the original collection is sharded, has its
options changed, or changes its indexes during processing, the
aggregation should fail.

This change removes any race conditions around detecting these changes.
2016-07-18 18:50:58 -04:00
Charlie Swanson
a8414a21ef SERVER-25054 Error if aggregation uses text score without text search. 2016-07-14 16:18:39 -04:00
Charlie Swanson
7050c2613b SERVER-24640 Implement getDependencies for $facet stage. 2016-07-14 16:18:38 -04:00
Geert Bosch
b62dcab903 SERVER-24766 Rename error code 15999 to InvalidPipelineOperator 2016-07-13 13:48:28 -04:00
Benjamin Murphy
45977b4209 SERVER-24714 graphLookup now accepts the restrictSearchWithMatch option.
Closes #1098

Signed-off-by: David Storch <david.storch@10gen.com>
2016-07-05 15:16:59 -04:00
Sally McNichols
f3919fcaa8 SERVER-24302 Make "as" option of $filter and $map default to "this" 2016-06-30 14:13:27 -04:00
Charlie Swanson
752eb0f448 SERVER-18966 Add the ability to exclude fields in $project stage 2016-06-24 18:07:36 -04:00
Charlie Swanson
46b4dfbdef SERVER-23654 Add $facet aggregation stage 2016-06-24 11:51:21 -04:00
Charlie Swanson
20e9b2798d SERVER-24638 Move command processing from Pipeline to AggregationRequest 2016-06-24 11:51:20 -04:00
Kaloian Manassiev
2477b8c33b SERVER-22512 Remove unnecessary calls to stopBalancer 2016-06-09 13:13:05 -04:00
Geert Bosch
00ed8f3b27 SERVER-19735: Add support for decimal type in aggregation 2016-06-06 13:22:34 -04:00
Mark Benvenuto
6dcdd23dd3 SERVER-23971 Clang-Format code 2016-05-28 17:55:12 -04:00
David Hows
fee016c605 SERVER-24068 - Disable test server21632.js when running with WiredTiger LSM 2016-05-17 05:42:22 +10:00
James Wahlin
b31ca56158 SERVER-23896 Add ExpressionMod tests for infinite dividend 2016-05-09 09:07:56 -04:00
James Wahlin
0ffad2b98d SERVER-23896 Additional tests for ExpressionMod 2016-05-09 08:59:46 -04:00
David Storch
34e784dd13 SERVER-23725 Aggregation now supports the graphLookup stage.
This commit is identical to a1253a94b8.
2016-05-04 09:54:45 -04:00
Spencer T Brody
595d7d795f SERVER-23213 Remove all users of ShardRegistry::kAllRetriableErrors
This reverts commit f294d1dcd4.
2016-05-03 18:57:26 -04:00
Kyle Suarez
f294d1dcd4 Revert "SERVER-23213 Remove all users of ShardRegistry::kAllRetriableErrors"
This reverts commit 21cfba12a0.
2016-05-03 00:01:19 -04:00
Spencer T Brody
21cfba12a0 SERVER-23213 Remove all users of ShardRegistry::kAllRetriableErrors 2016-05-02 18:45:08 -04:00
Max Hirschhorn
6c0f5951e3 Revert "SERVER-23725 Aggregation now supports the graphLookup stage."
This reverts commit a1253a94b8.
2016-04-30 17:30:50 -04:00
Benjamin Murphy
a1253a94b8 SERVER-23725 Aggregation now supports the graphLookup stage. 2016-04-29 17:38:28 -04:00
Benjamin Murphy
7ae631410d SERVER-8951 Aggregation now supports the indexOfArray, indexOfBytes, and indexOfCP expressions. 2016-04-29 17:17:43 -04:00
Benjamin Murphy
5c3e0d4855 SERVER-6773 Aggregation now supports the split expression. 2016-04-26 11:28:01 -04:00
Benjamin Murphy
223c2a1aa5 SERVER-6146 Aggregation now supports the in expression. 2016-04-21 11:38:43 -04:00
Benjamin Murphy
0dfb47dd67 SERVER-17258 Aggregation now supports the reduce expression. 2016-04-21 11:23:15 -04:00
Benjamin Murphy
77aaa54193 SERVER-10689 Aggregation now supports the switch expression. 2016-04-15 13:03:12 -04:00
Benjamin Murphy
6bd6589e80 SERVER-14670 Aggregation supports strLenCP and strLenBytes. 2016-03-29 15:21:06 -04:00
Charlie Swanson
f23e588c18 SERVER-22881 Expand arrays during $lookup's query.
If the value in 'localField' is an array, assume that it corresponds to
multiple entries in the foreign collection. The query to the foreign
collection will use a $in predicate, except when a regex is present, in
which case it will use a series of $eq predicates within an $or.
2016-03-29 15:06:54 -04:00
Jens Fahnenbruck
ea07e34466 SERVER-7695 Add ISO versions of date expressions.
Implements expressions for dealing with week as described in the
ISO-8601 standard (https://en.wikipedia.org/wiki/ISO_week_date).

Also implements the %G, %V, and %u specifiers for $dateToString.

Closes #1068
2016-03-29 12:22:11 -04:00
Benjamin Murphy
60f636afea SERVER-20163 Aggregation now supports the zip expression. 2016-03-25 11:29:43 -04:00
Benjamin Murphy
5afa97da4c SERVER-22580 Aggregation now supports substrCP. 2016-03-25 10:37:50 -04:00
Benjamin Murphy
f4bbde02ba SERVER-4507 Group stages now take advantage of sorted input sequences. 2016-03-24 11:05:32 -04:00
Benjamin Murphy
f40294818c SERVER-20169 Aggregation now supports the range expressin. 2016-03-24 10:59:06 -04:00
Mike Grundy
1be713cebb SERVER-23067 Final round of JS linting and formatting 2016-03-18 17:10:31 -04:00
Benjamin Murphy
a40991b77d SERVER-23029 Added reverseArray expression to aggregation. 2016-03-15 12:24:53 -04:00
Jonathan Abrahams
4ae691e8ed SERVER-22468 Format JS code with approved style in jstests/ 2016-03-09 12:18:14 -05:00
Benjamin Murphy
aee9f7e2a9 SERVER-22093 Aggregation uses a COUNT plan when no fields are needed from input documents. 2016-03-04 10:05:05 -05:00