summaryrefslogtreecommitdiff
path: root/src/mongo/db/query
diff options
context:
space:
mode:
authorYuhong Zhang <yuhong.zhang@mongodb.com>2023-02-08 23:53:43 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-02-09 13:30:35 +0000
commit1d79792d701ab899165a7c56108633bbeac3c924 (patch)
tree3b09e1b9ae443028d8900fedeedfc572493a46b5 /src/mongo/db/query
parent4c40b70635fc5dea877f5bb5f7e98865e43d7b06 (diff)
downloadmongo-1d79792d701ab899165a7c56108633bbeac3c924.tar.gz
SERVER-73602 Add the stub of the TIMESERIES_WRITE query stage
Diffstat (limited to 'src/mongo/db/query')
-rw-r--r--src/mongo/db/query/classic_stage_builder.cpp1
-rw-r--r--src/mongo/db/query/plan_executor_impl.cpp5
-rw-r--r--src/mongo/db/query/stage_types.cpp1
-rw-r--r--src/mongo/db/query/stage_types.h3
4 files changed, 10 insertions, 0 deletions
diff --git a/src/mongo/db/query/classic_stage_builder.cpp b/src/mongo/db/query/classic_stage_builder.cpp
index a11db550e04..2410384ebcf 100644
--- a/src/mongo/db/query/classic_stage_builder.cpp
+++ b/src/mongo/db/query/classic_stage_builder.cpp
@@ -421,6 +421,7 @@ std::unique_ptr<PlanStage> ClassicStageBuilder::build(const QuerySolutionNode* r
case STAGE_TRIAL:
case STAGE_UNKNOWN:
case STAGE_UNPACK_TIMESERIES_BUCKET:
+ case STAGE_TIMESERIES_WRITE:
case STAGE_SENTINEL:
case STAGE_COLUMN_SCAN:
case STAGE_UPDATE: {
diff --git a/src/mongo/db/query/plan_executor_impl.cpp b/src/mongo/db/query/plan_executor_impl.cpp
index 677267fc8b7..cc97c25e7f3 100644
--- a/src/mongo/db/query/plan_executor_impl.cpp
+++ b/src/mongo/db/query/plan_executor_impl.cpp
@@ -611,6 +611,11 @@ long long PlanExecutorImpl::executeDelete() {
const SpecificStats* stats = _root->child()->getSpecificStats();
return static_cast<const DeleteStats*>(stats)->docsDeleted;
}
+ case StageType::STAGE_TIMESERIES_WRITE: {
+ const auto* tsWriteStats =
+ static_cast<const TimeseriesWriteStats*>(_root->getSpecificStats());
+ return tsWriteStats->measurementsDeleted;
+ }
default: {
invariant(StageType::STAGE_DELETE == _root->stageType() ||
StageType::STAGE_BATCHED_DELETE == _root->stageType());
diff --git a/src/mongo/db/query/stage_types.cpp b/src/mongo/db/query/stage_types.cpp
index 3de3fa2086e..934fe3107ec 100644
--- a/src/mongo/db/query/stage_types.cpp
+++ b/src/mongo/db/query/stage_types.cpp
@@ -74,6 +74,7 @@ StringData stageTypeToString(StageType stageType) {
{STAGE_SUBPLAN, "SUBPLAN"_sd},
{STAGE_TEXT_OR, "TEXT_OR"_sd},
{STAGE_TEXT_MATCH, "TEXT_MATCH"_sd},
+ {STAGE_TIMESERIES_WRITE, "TIMESERIES_WRITE"_sd},
{STAGE_TRIAL, "TRIAL"_sd},
{STAGE_UNKNOWN, "UNKNOWN"_sd},
{STAGE_UNPACK_TIMESERIES_BUCKET, "UNPACK_TIMESERIES_BUCKET"_sd},
diff --git a/src/mongo/db/query/stage_types.h b/src/mongo/db/query/stage_types.h
index f5ee3a70d4c..6398573f543 100644
--- a/src/mongo/db/query/stage_types.h
+++ b/src/mongo/db/query/stage_types.h
@@ -117,6 +117,9 @@ enum StageType {
STAGE_TEXT_OR,
STAGE_TEXT_MATCH,
+ // Stage for modifying bucket documents in a time-series bucket collection.
+ STAGE_TIMESERIES_WRITE,
+
// Stage for choosing between two alternate plans based on an initial trial period.
STAGE_TRIAL,