Commit Graph

591 Commits

Author SHA1 Message Date
Jacob Evans
ea0e6b047c SERVER-41200 Change syntax from $out to $merge for tests in other directories 2019-05-21 10:55:01 -04:00
Nick Zolnierz
3c0a976f70 SERVER-41201 Add replacements for more $out helpers 2019-05-20 17:07:14 -04:00
Anton Korshunov
57c127b904 SERVER-40439 Add merge support for whenNotMatched: discard 2019-05-17 21:37:17 +01:00
A. Jesse Jiryu Davis
0ed0b97e6f SERVER-41181 Fix sharding tests for hostname normalization 2019-05-17 16:28:27 -04:00
James Wahlin
17fe1b7109 SERVER-40240 Add new $unset aggregation stage 2019-05-17 11:16:24 -04:00
Charlie Swanson
01d37d3ce4 SERVER-41201 Rename test to reflect new coverage 2019-05-17 10:42:10 -04:00
Charlie Swanson
66e7df65d0 SERVER-41201 Add replacement for "withEachOutMode" 2019-05-17 10:36:51 -04:00
Charlie Swanson
dfedea7a2a SERVER-40239 New alias: $replaceWith => $replaceRoot 2019-05-15 12:17:39 -04:00
Anton Korshunov
089dd83af4 SERVER-40438 Add merge support for whenNotMatched: fail 2019-05-14 23:19:33 +01:00
Anton Korshunov
dde091c079 SERVER-40431 Add merge support for whenMatched: pipeline 2019-05-13 21:40:17 +01:00
Anton Korshunov
a25226e009 SERVER-40440 Add merge support for whenMatched: 'keepExisting' 2019-05-06 21:20:41 +01:00
Ian Boros
b1a9c9adea SERVER-40465 $group will not distinct scan multikey index 2019-05-03 15:00:35 -04:00
Anton Korshunov
634bf7b2e7 SERVER-40430 Add merge support for whenMatched: merge 2019-05-03 08:51:37 +01:00
Anton Korshunov
fc6c65c0d4 SERVER-40429 Add merge stage to write output to existing collection 2019-05-02 17:03:31 +01:00
Arun Banala
7ea3f16dc5 SERVER-40584 Regex agg expressions should not inherit from ExpressionFixedArity 2019-04-30 11:13:19 +01:00
Arun Banala
7e700f6668 SERVER-40083 Don't recompile each time $regex is evaluated when regex argument is a constant 2019-04-26 15:19:48 +01:00
Ian Boros
03a6b3f910 Revert "SERVER-40083 Don't recompile each time $regex is evaluated when regex argument is a constant"
This reverts commit a60f6a5373.
2019-04-23 12:56:00 -04:00
Arun Banala
a60f6a5373 SERVER-40083 Don't recompile each time $regex is evaluated when regex argument is a constant 2019-04-23 11:20:42 +01:00
Anton Korshunov
d47bbc343a SERVER-24860 Optimize away entire pipeline if it can be answered using a query 2019-04-03 12:19:22 +01:00
Arun Banala
1d8ddd2d2d SERVER-40343 Better handling of errors from PCRE in $regex expressions 2019-04-01 15:44:19 +01:00
Justin Seyster
e73da48e26 SERVER-40089 $group optimized with DISTINCT_SCAN cannot use $$ROOT
The getExecutorDistinct() function is responsible for both creating an
executor for the distinct command and creating an executor for a
$group that has been optimized with a DISTINCT_SCAN (see commit
da63195). These two scenarios have different requirements for their
projection, and getExecutorDistinct() distinguished the two by
assuming any caller with an empty ({}) projection wanted the distinct
command projection.

However, a $first accumulator with $$ROOT requires the entire
document, so the logic that builds an optimized $group executor
generates an empty projection for this case as well. When that
happens, getExecutorDistinct() mistakenly chooses the projection that
the distinct command wants, and when the pipeline evaluates $$ROOT, it
only gets to see a small subset of fields in the document.

This patch modifies getExecutorDistinct() so that the caller must
explicitly state what projection it wants. That means that the
distinct command no longer passes an empty projection to indicate that
it wants to project on just the distinct field. Instead, the distinct
command computes the projection for the distinct field on its own and
includes that projection in the ParsedDistinct object that it passes
to getExecutorDistinct().
2019-03-28 17:17:27 -04:00
Arun Banala
6b3f5310fd SERVER-37848 Test $regex agg expressions with regex that meets and exceeds the capture limit 2019-03-27 19:00:25 +00:00
Arun Banala
b72e0f72f9 SERVER-39694 Implement $regexMatch as syntactic sugar on top of $regexFind 2019-03-20 18:42:33 +00:00
Arun Banala
12a560bff2 SERVER-39696 Implement $regexFindAll 2019-03-20 15:09:26 +00:00
Arun Banala
6907444c11 SERVER-39695 Implement $regexFind 2019-03-13 12:33:22 +00:00
Anton Korshunov
330c59b671 SERVER-39788 Large values in $skip and $limit stages may cause an arithmetic overflow 2019-03-13 06:50:28 +00:00
Max Hirschhorn
9ad8d6335f SERVER-40076 Tag JS tests with reason they're unable to run in Atlas.
There are likely more JavaScript tests which have been added since
r3.6.9 that still need to be tagged.

(cherry picked from commit 05ec08fa62)
2019-03-11 18:17:29 -04:00
Charlie Swanson
56efcffbcb SERVER-37047 Split up testshard1.js
Splits some assertions about explain out of the test to fix some build
failures. Also renames the test and moves it to the sharding suite and
cleans up some old TODOs and makeshift passthroughs.
2019-03-04 15:41:23 -05:00
Patrick Meredith
814b1f8237 SERVER-15926: Implement $round function and allow a precision argument for $trunc
Closes #1297

Signed-off-by: Charlie Swanson <charlie.swanson@mongodb.com>
2019-02-14 17:54:56 -05:00
Charlie Swanson
f1da8170c1 SERVER-38360 Prevent $out writing to ns read from in the same pipeline
This restriction only applies to $out with modes "insertDocuments" and
"replaceDocuments".
2019-02-14 16:54:47 -05:00
Charlie Swanson
87194fbe0c SERVER-38311 Change out merging strategy
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.
2019-02-13 07:30:10 -05:00
Ian Boros
c3f2bef808 SERVER-39269 flag gate sharded $lookup 2019-02-07 18:41:36 -05:00
Martin Neupauer
a257327cc3 SERVER-32666 Allow $graphLookup against a sharded collection to execute on mongos 2019-01-30 17:57:26 -05:00
Jacob Evans
41557fac17 SERVER-38695 Make QuerySolutionNode subclasses for projection fast-paths 2019-01-29 13:53:10 -05:00
Ian Boros
edbc3311fb SERVER-39109 fix case where agg uses illegal field path 2019-01-23 13:15:34 -05:00
James Wahlin
dfd854a688 SERVER-38688 Abandon $lookup cache when not local 2019-01-22 16:47:58 -05:00
Brigitte Lamarche
21e65b332e SERVER-38716 fix $geoNear and $text within $lookup sub-pipeline 2019-01-17 15:31:55 -05:00
Charlie Swanson
97821dfa13 Revert " SERVER-38311 Adjust $out merging strategy"
This reverts commit 0cb2195939.
2019-01-16 20:15:37 -05:00
Charlie Swanson
0cb2195939 SERVER-38311 Adjust $out merging strategy 2019-01-16 10:09:59 -05:00
Brigitte Lamarche
bb9114dc71 SERVER-38362 Prevent $out stage within $lookup 2019-01-03 15:13:57 -05:00
Patrick Meredith
43cd5d0e35 SERVER-32930 Add trigonometric expressions to aggregation
Closes #1287

Signed-off-by: Charlie Swanson <charlie.swanson@mongodb.com>
2018-12-22 21:20:56 -05:00
Henrik Edin
6b641e8665 SERVER-38249 Implement stdx unordered_map and unordered_set as absl node hash map/set.
Remove stdx::unordered_multimap and multiset.

Custom hashers to stdx::unordered_map are not trusted by default, we
will rehash the produced hash with absl again to ensure we have a good
hash function.
2018-12-20 09:18:05 -05:00
James Wahlin
056d61676f SERVER-32308 Support for $lookup to execute on mongos against a sharded foreign collection 2018-12-12 14:41:24 -05:00
Bernard Gorman
afe80e6c70 SERVER-36871 $sample can loop infinitely on orphaned data 2018-12-11 17:41:12 +00:00
David Storch
8c3877860e Fix error code conflict. 2018-12-07 16:22:41 -05:00
David Storch
7000ad6f39 SERVER-38063 Fail cleanly on execution-level explain of $out pipeline. 2018-12-07 16:14:56 -05:00
Charlie Swanson
67e98183b1 SERVER-38349 Disallow exchange passed to mongos 2018-12-07 16:07:37 -05:00
Devin Hilly
1862b00862 SERVER-31098 Wrong ns in system.profile for aggregation query 2018-11-20 11:24:41 -05:00
Bernard Gorman
4177d6d22a SERVER-37750 Optimized $sample stage does not yield 2018-11-15 01:35:17 +00:00
Justin Seyster
cadd454ca9 SERVER-36881 Push merge-pipeline $limit stage to shards. 2018-11-09 14:26:49 -05:00