diff options
author | Charlie Swanson <charlie.swanson@mongodb.com> | 2016-11-29 15:39:47 -0500 |
---|---|---|
committer | Charlie Swanson <charlie.swanson@mongodb.com> | 2016-12-01 14:54:36 -0500 |
commit | 5a58e613d59febb9c32ae1940cbb8663cabe5095 (patch) | |
tree | b6c1f6c6bee3ab47de655d2810d0bf172ef19020 /src/mongo/db/pipeline/value.cpp | |
parent | 894e4d0e71c94d2fcf9848a45bde2d64c8ad6c3a (diff) | |
download | mongo-5a58e613d59febb9c32ae1940cbb8663cabe5095.tar.gz |
SERVER-27213 Recompute dependencies when joining matches
Diffstat (limited to 'src/mongo/db/pipeline/value.cpp')
-rw-r--r-- | src/mongo/db/pipeline/value.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/mongo/db/pipeline/value.cpp b/src/mongo/db/pipeline/value.cpp index f6cd179f1a6..db1c3047bd9 100644 --- a/src/mongo/db/pipeline/value.cpp +++ b/src/mongo/db/pipeline/value.cpp @@ -242,13 +242,22 @@ Value::Value(const BSONArray& arr) : _storage(Array) { _storage.putVector(vec.get()); } -Value::Value(const vector<BSONObj>& arr) : _storage(Array) { - intrusive_ptr<RCVector> vec(new RCVector); - vec->vec.reserve(arr.size()); - for (auto&& obj : arr) { - vec->vec.push_back(Value(obj)); +Value::Value(const vector<BSONObj>& vec) : _storage(Array) { + intrusive_ptr<RCVector> storageVec(new RCVector); + storageVec->vec.reserve(vec.size()); + for (auto&& obj : vec) { + storageVec->vec.push_back(Value(obj)); } - _storage.putVector(vec.get()); + _storage.putVector(storageVec.get()); +} + +Value::Value(const vector<Document>& vec) : _storage(Array) { + intrusive_ptr<RCVector> storageVec(new RCVector); + storageVec->vec.reserve(vec.size()); + for (auto&& obj : vec) { + storageVec->vec.push_back(Value(obj)); + } + _storage.putVector(storageVec.get()); } Value Value::createIntOrLong(long long longValue) { |