| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also clean up unused function in repltests.cpp.
|
|
|
|
| |
invariant on duplicate index keys in KeyString form for different indexes
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In addition towards working towards the general goal of
doing as much query execution as possible with a PlanStage
tree, this should have a positive performance impact for
certain agg pipelines. Previously, a pipeline with a
$project (or a $project-like stage such as $addFields)
followed by a $limit might have applied this limit only
after a full batch of data was loaded by
DocumentSourceCursor. After this change, the limit will take
effect prior to DocumentSourceCursor batching, and thus may
reduce the amount of data processed by the query.
|
| |
|
| |
|
|
|
|
| |
cleanup
|
|
|
|
| |
update callback
|
| |
|
| |
|
|
|
|
| |
iterate docs
|
|
|
|
| |
OplogApplierImpl
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Segregate old-style dbtests into their own Suite initialization
system: OldStyleSuiteSpecification. This is where the funky
deprecated features can live on without interfering with the
Suite API. It also gives us a searchable base class to identify
them in the future.
OldStyleSuite has `setupTests()` and an `add<T>()` that
Suite does not have. Suite API can shrink when it doesn't
have to support these dbtest adaptor features.
Suite only needs non-template `add(name, callback)`.
- Add OldStyleSuiteInitializer to some dbtests that were missing it!
These didn't use SuiteInstance to register themselves and were
incorrect. They would self register, resulting in _allSuites()
holding a std::shared_ptr to a static-duration Suite object!
- Change `getSuite()` to return `Suite&` instead of `Suite*`.
- No more "self-registering" in Suite constructor. Registration
must be done as a separate post-construction step. This removes
some unusual lifetime management code and is easier to document.
Suite::getSuite(name) is the only way to make a Suite, and it
does the make_shared and registration calls with a pseudo-private
ConstructorEnable idiom.
- Suite->run() returns std::unique_ptr<Result> instead of
raw `Result*`. It's virtual to support OldStyleSuite behavior.
- Suite._ran does nothing. Removed.
- Result.cur does nothing. Removed.
- Switch to pass-by-value and std::move for most ctor args.
- Add explicit on 1-arg ctors.
- Get rid of TestHolder. It's just a 2-field struct.
- use fmt instead of snprintf
- TEST and TEST_F macros: generate TEST_TYPE once.
- TEST and TEST_F macros: inline the _agent variable.
- Mark _doRun as `override`.
- Terminology: replace CASE_NAME with SUITE_NAME.
- rename DeathTestImpl -> DeathTestBase
- move getDeathTestPattern into the test as a static member function
- refactor out some repetition from the comparator decl macros
- use if-constexpr and diamond relops to clean up the
ComparisonAssertion class.
- dbtests: conditionally skip some add<T> calls
- further dedup (DEATH_)TEST(_F) macros
|
| |
|
|
|
|
|
|
|
|
| |
This consolidates the implementations of DocumentSourceSort
and SortStage to both use the same underlying sort execution
code. It also allows a future change to expose external sort
for find command (which currently requires
'enableTestCommands=true').
|
| |
|
|
|
|
|
|
| |
Document/Value is now used throughout the query execution
engine, and therefore should move into the directory which
holds query execution code.
|
|
|
|
|
|
|
| |
and commitIndexBuild oplog entries
This emits the two-phase oplog entries in cloner.cpp, system_index.cpp and
index_builder.cpp.
|
|
|
|
| |
CollectionCatalog::get().lookupCollectionByNamespace()
|
|
|
|
| |
SyncTail to OplogApplierImpl
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Xcode 10.2 Clang considers {Value(), Value()} constructors to be ambiguous:
src/mongo/dbtests/query_stage_sort_key_generator.cpp:137:11: error: call to constructor of 'mongo::Value' is ambiguous
Value expectedOut({Value(99), Value(16)});
^ ~~~~~~~~~~~~~~~~~~~~~~
src/mongo/db/pipeline/value.h:103:14: note: candidate constructor
explicit Value(const std::string& value) : _storage(String, StringData(value)) {}
^
src/mongo/db/pipeline/value.h:109:14: note: candidate constructor
explicit Value(std::vector<Value> vec)
This patch uses an explicit std::vector<Value> constructor to fix macOS compiles.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This makes it possible to instantiate a SortExecutor inside
SortStage.
|
|
|
|
|
|
|
|
| |
Also replaces WorkingSetMember::isSuspicious with a scheme
that associates a snapshot id with every index key. This is
needed because extracted WorkingSetMembers are not
discoverable from the WorkingSet, and thus cannot be marked
as suspicious in preparation for yield.
|
|
|
|
| |
check for interrupts
|
|
|
|
| |
is dropped
|
|
|
|
|
|
|
|
| |
The bulk of this change is to implement serialization and
deserialization routines for WorkingSetMember, so that the
Sorter can spill WorkingSetMembers to disk. In addition,
this changes the SortExecutor to sort WorkingSetMembers
internally as opposed to sorting Documents.
|
| |
|
|
|
|
| |
oplog entries
|
| |
|
|
|
|
| |
SortedDataInterface
|
|
|
|
| |
index traversal in our tests
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
{background:true} is requested
|
|
|
|
|
|
| |
beginning of an index build
This replaces the 'n' (no-op) oplog entry with the message "Creating indexes. Coll: (nss)".
|
|
|
|
| |
SERVER-42157 Unowned mode for Document/Value
|
| |
|
|
|
|
| |
failed collection validation assertions
|
|
|
|
| |
This reverts commit 40f226b5a9bfb4863268334d287a46fb226a22cf.
|
| |
|