SERVER-111398 : Mark query_execution_sbe owned headers in src/mongo/db/query/stage_builder/sbe for modularity (#42615)

GitOrigin-RevId: da23e5b21c98c3b8a2e57cfdf91c46b783dab979
This commit is contained in:
fotiniAlvanaki 2025-10-16 12:56:33 +01:00 committed by MongoDB Bot
parent 5041013469
commit fe56ca3698
27 changed files with 135 additions and 155 deletions

View File

@ -33,6 +33,7 @@
#include "mongo/db/exec/sbe/expressions/runtime_environment.h" #include "mongo/db/exec/sbe/expressions/runtime_environment.h"
#include "mongo/db/query/stage_builder/sbe/abt/reference_tracker.h" #include "mongo/db/query/stage_builder/sbe/abt/reference_tracker.h"
#include "mongo/db/query/stage_builder/sbe/abt_lower_defs.h" #include "mongo/db/query/stage_builder/sbe/abt_lower_defs.h"
#include "mongo/util/modules.h"
namespace mongo::stage_builder::abt_lower { namespace mongo::stage_builder::abt_lower {

View File

@ -31,6 +31,7 @@
#include "mongo/db/exec/sbe/values/slot.h" #include "mongo/db/exec/sbe/values/slot.h"
#include "mongo/db/query/stage_builder/sbe/abt/syntax/syntax.h" #include "mongo/db/query/stage_builder/sbe/abt/syntax/syntax.h"
#include "mongo/util/modules.h"
namespace mongo::stage_builder::abt_lower { namespace mongo::stage_builder::abt_lower {

View File

@ -31,11 +31,11 @@
#include "mongo/db/query/stage_builder/sbe/gen_helpers.h" #include "mongo/db/query/stage_builder/sbe/gen_helpers.h"
#include "mongo/util/field_set.h" #include "mongo/util/field_set.h"
#include "mongo/util/modules.h"
#include "mongo/util/string_map.h" #include "mongo/util/string_map.h"
#include <algorithm> #include <algorithm>
#include <cstddef> #include <cstddef>
#include <cstdint>
#include <memory> #include <memory>
#include <string> #include <string>
#include <vector> #include <vector>

View File

@ -30,11 +30,6 @@
#pragma once #pragma once
#include "mongo/base/string_data.h" #include "mongo/base/string_data.h"
#include "mongo/bson/ordering.h"
#include "mongo/db/exec/plan_stats.h"
#include "mongo/db/exec/sbe/expressions/expression.h"
#include "mongo/db/exec/sbe/stages/collection_helpers.h"
#include "mongo/db/exec/sbe/stages/plan_stats.h"
#include "mongo/db/exec/sbe/stages/stages.h" #include "mongo/db/exec/sbe/stages/stages.h"
#include "mongo/db/exec/sbe/values/value.h" #include "mongo/db/exec/sbe/values/value.h"
#include "mongo/db/exec/trial_period_utils.h" #include "mongo/db/exec/trial_period_utils.h"
@ -45,14 +40,12 @@
#include "mongo/db/query/compiler/physical_model/query_solution/query_solution.h" #include "mongo/db/query/compiler/physical_model/query_solution/query_solution.h"
#include "mongo/db/query/multiple_collection_accessor.h" #include "mongo/db/query/multiple_collection_accessor.h"
#include "mongo/db/query/plan_yield_policy_sbe.h" #include "mongo/db/query/plan_yield_policy_sbe.h"
#include "mongo/db/query/shard_filterer_factory_interface.h"
#include "mongo/db/query/stage_builder/sbe/analysis.h" #include "mongo/db/query/stage_builder/sbe/analysis.h"
#include "mongo/db/query/stage_builder/sbe/builder_data.h" #include "mongo/db/query/stage_builder/sbe/builder_data.h"
#include "mongo/db/query/stage_builder/sbe/gen_helpers.h" #include "mongo/db/query/stage_builder/sbe/gen_helpers.h"
#include "mongo/db/query/stage_builder/sbe/type_signature.h"
#include "mongo/db/query/stage_builder/stage_builder.h" #include "mongo/db/query/stage_builder/stage_builder.h"
#include "mongo/db/storage/key_string/key_string.h"
#include "mongo/util/assert_util.h" #include "mongo/util/assert_util.h"
#include "mongo/util/modules.h"
#include "mongo/util/str.h" #include "mongo/util/str.h"
#include <algorithm> #include <algorithm>
@ -63,7 +56,6 @@
#include <string> #include <string>
#include <type_traits> #include <type_traits>
#include <utility> #include <utility>
#include <variant>
#include <vector> #include <vector>
#include <absl/container/flat_hash_map.h> #include <absl/container/flat_hash_map.h>

View File

@ -34,14 +34,13 @@
#include "mongo/db/exec/sbe/expressions/runtime_environment.h" #include "mongo/db/exec/sbe/expressions/runtime_environment.h"
#include "mongo/db/exec/sbe/in_list.h" #include "mongo/db/exec/sbe/in_list.h"
#include "mongo/db/exec/sbe/values/slot.h" #include "mongo/db/exec/sbe/values/slot.h"
#include "mongo/db/matcher/expression.h"
#include "mongo/db/namespace_string.h" #include "mongo/db/namespace_string.h"
#include "mongo/db/query/collation/collator_interface.h" #include "mongo/db/query/collation/collator_interface.h"
#include "mongo/db/query/compiler/metadata/index_entry.h" #include "mongo/db/query/compiler/metadata/index_entry.h"
#include "mongo/db/query/compiler/optimizer/index_bounds_builder/interval_evaluation_tree.h" #include "mongo/db/query/compiler/optimizer/index_bounds_builder/interval_evaluation_tree.h"
#include "mongo/db/query/plan_cache/plan_cache_debug_info.h" #include "mongo/db/query/plan_cache/plan_cache_debug_info.h"
#include "mongo/stdx/unordered_map.h" #include "mongo/stdx/unordered_map.h"
#include "mongo/util/string_listset.h" #include "mongo/util/modules.h"
namespace mongo::stage_builder { namespace mongo::stage_builder {

View File

@ -31,8 +31,7 @@
#include "mongo/db/exec/sbe/values/slot.h" #include "mongo/db/exec/sbe/values/slot.h"
#include "mongo/db/query/plan_yield_policy_sbe.h" #include "mongo/db/query/plan_yield_policy_sbe.h"
#include "mongo/util/modules.h"
#include <memory>
#include <absl/container/flat_hash_map.h> #include <absl/container/flat_hash_map.h>
#include <absl/container/flat_hash_set.h> #include <absl/container/flat_hash_set.h>

View File

@ -35,6 +35,7 @@
#include "mongo/db/query/stage_builder/sbe/abt/reference_tracker.h" #include "mongo/db/query/stage_builder/sbe/abt/reference_tracker.h"
#include "mongo/db/query/stage_builder/sbe/abt/syntax/expr.h" #include "mongo/db/query/stage_builder/sbe/abt/syntax/expr.h"
#include "mongo/db/query/stage_builder/sbe/abt/syntax/syntax.h" #include "mongo/db/query/stage_builder/sbe/abt/syntax/syntax.h"
#include "mongo/util/modules.h"
#include <cstddef> #include <cstddef>
#include <vector> #include <vector>

View File

@ -29,19 +29,9 @@
#include "mongo/db/query/stage_builder/sbe/gen_abt_helpers.h" #include "mongo/db/query/stage_builder/sbe/gen_abt_helpers.h"
#include "mongo/bson/bsontypes.h" #include "mongo/db/query/query_feature_flags_gen.h"
#include "mongo/db/query/algebra/polyvalue.h"
#include "mongo/db/query/bson_typemask.h"
#include "mongo/db/query/stage_builder/sbe/abt_defs.h"
#include "mongo/util/assert_util.h"
#include <algorithm>
#include <cstddef> #include <cstddef>
#include <cstdint>
#include <iterator>
#include <limits>
#include <numeric>
namespace mongo::stage_builder { namespace mongo::stage_builder {
abt::ABT makeVariable(abt::ProjectionName var) { abt::ABT makeVariable(abt::ProjectionName var) {

View File

@ -29,14 +29,12 @@
#pragma once #pragma once
#include "mongo/base/error_codes.h"
#include "mongo/base/string_data.h" #include "mongo/base/string_data.h"
#include "mongo/db/exec/sbe/values/slot.h"
#include "mongo/db/exec/sbe/values/value.h" #include "mongo/db/exec/sbe/values/value.h"
#include "mongo/db/query/stage_builder/sbe/abt/comparison_op.h" #include "mongo/db/query/stage_builder/sbe/abt/comparison_op.h"
#include "mongo/db/query/stage_builder/sbe/abt/syntax/expr.h" #include "mongo/db/query/stage_builder/sbe/abt/syntax/expr.h"
#include "mongo/db/query/stage_builder/sbe/abt/syntax/syntax.h" #include "mongo/db/query/stage_builder/sbe/abt/syntax/syntax.h"
#include "mongo/db/query/stage_builder/sbe/sbexpr.h" #include "mongo/util/modules.h"
#include <utility> #include <utility>
#include <vector> #include <vector>

View File

@ -33,6 +33,7 @@
#include "mongo/db/pipeline/accumulation_statement.h" #include "mongo/db/pipeline/accumulation_statement.h"
#include "mongo/db/query/stage_builder/sbe/gen_helpers.h" #include "mongo/db/query/stage_builder/sbe/gen_helpers.h"
#include "mongo/db/query/stage_builder/sbe/sbexpr.h" #include "mongo/db/query/stage_builder/sbe/sbexpr.h"
#include "mongo/util/modules.h"
#include <memory> #include <memory>
#include <vector> #include <vector>

View File

@ -30,8 +30,6 @@
#include "mongo/db/query/stage_builder/sbe/gen_coll_scan.h" #include "mongo/db/query/stage_builder/sbe/gen_coll_scan.h"
#include "mongo/base/error_codes.h"
#include "mongo/base/string_data.h"
#include "mongo/db/exec/collection_scan_common.h" #include "mongo/db/exec/collection_scan_common.h"
#include "mongo/db/exec/sbe/expressions/runtime_environment.h" #include "mongo/db/exec/sbe/expressions/runtime_environment.h"
#include "mongo/db/exec/sbe/stages/scan.h" #include "mongo/db/exec/sbe/stages/scan.h"
@ -44,11 +42,9 @@
#include "mongo/db/query/stage_builder/sbe/builder.h" #include "mongo/db/query/stage_builder/sbe/builder.h"
#include "mongo/db/query/stage_builder/sbe/gen_filter.h" #include "mongo/db/query/stage_builder/sbe/gen_filter.h"
#include "mongo/db/query/stage_builder/sbe/sbexpr_helpers.h" #include "mongo/db/query/stage_builder/sbe/sbexpr_helpers.h"
#include "mongo/db/repl/optime.h"
#include "mongo/db/storage/record_store.h" #include "mongo/db/storage/record_store.h"
#include "mongo/db/storage/recovery_unit.h" #include "mongo/db/storage/recovery_unit.h"
#include "mongo/util/assert_util.h" #include "mongo/util/assert_util.h"
#include "mongo/util/str.h"
#include <cstddef> #include <cstddef>
#include <tuple> #include <tuple>

View File

@ -32,6 +32,7 @@
#include "mongo/db/local_catalog/collection.h" #include "mongo/db/local_catalog/collection.h"
#include "mongo/db/query/compiler/physical_model/query_solution/query_solution.h" #include "mongo/db/query/compiler/physical_model/query_solution/query_solution.h"
#include "mongo/db/query/stage_builder/sbe/gen_helpers.h" #include "mongo/db/query/stage_builder/sbe/gen_helpers.h"
#include "mongo/util/modules.h"
#include <string> #include <string>
#include <utility> #include <utility>

View File

@ -50,14 +50,10 @@
#include "mongo/db/pipeline/expression_walker.h" #include "mongo/db/pipeline/expression_walker.h"
#include "mongo/db/pipeline/field_path.h" #include "mongo/db/pipeline/field_path.h"
#include "mongo/db/pipeline/variables.h" #include "mongo/db/pipeline/variables.h"
#include "mongo/db/query/algebra/polyvalue.h"
#include "mongo/db/query/bson_typemask.h" #include "mongo/db/query/bson_typemask.h"
#include "mongo/db/query/datetime/date_time_support.h" #include "mongo/db/query/datetime/date_time_support.h"
#include "mongo/db/query/expression_walker.h" #include "mongo/db/query/expression_walker.h"
#include "mongo/db/query/stage_builder/sbe/abt/comparison_op.h" #include "mongo/db/query/stage_builder/sbe/abt/comparison_op.h"
#include "mongo/db/query/stage_builder/sbe/abt/syntax/expr.h"
#include "mongo/db/query/stage_builder/sbe/abt/syntax/syntax.h"
#include "mongo/db/query/stage_builder/sbe/abt_defs.h"
#include "mongo/db/query/stage_builder/sbe/builder.h" #include "mongo/db/query/stage_builder/sbe/builder.h"
#include "mongo/db/query/stage_builder/sbe/gen_helpers.h" #include "mongo/db/query/stage_builder/sbe/gen_helpers.h"
#include "mongo/db/query/stage_builder/sbe/sbexpr_helpers.h" #include "mongo/db/query/stage_builder/sbe/sbexpr_helpers.h"
@ -70,7 +66,6 @@
#include <iterator> #include <iterator>
#include <limits> #include <limits>
#include <map> #include <map>
#include <numeric>
#include <stack> #include <stack>
#include <string> #include <string>
#include <utility> #include <utility>

View File

@ -32,6 +32,7 @@
#include "mongo/db/exec/sbe/values/value.h" #include "mongo/db/exec/sbe/values/value.h"
#include "mongo/db/pipeline/expression.h" #include "mongo/db/pipeline/expression.h"
#include "mongo/db/query/stage_builder/sbe/sbexpr.h" #include "mongo/db/query/stage_builder/sbe/sbexpr.h"
#include "mongo/util/modules.h"
#include <boost/optional/optional.hpp> #include <boost/optional/optional.hpp>

View File

@ -29,6 +29,7 @@
#include "mongo/db/query/stage_builder/sbe/builder.h" #include "mongo/db/query/stage_builder/sbe/builder.h"
#include "mongo/db/query/stage_builder/sbe/gen_helpers.h" #include "mongo/db/query/stage_builder/sbe/gen_helpers.h"
#include "mongo/util/modules.h"
namespace mongo::stage_builder { namespace mongo::stage_builder {

View File

@ -35,6 +35,7 @@
#include "mongo/db/matcher/expression_leaf.h" #include "mongo/db/matcher/expression_leaf.h"
#include "mongo/db/matcher/expression_visitor.h" #include "mongo/db/matcher/expression_visitor.h"
#include "mongo/db/query/stage_builder/sbe/gen_helpers.h" #include "mongo/db/query/stage_builder/sbe/gen_helpers.h"
#include "mongo/util/modules.h"
#include <utility> #include <utility>

View File

@ -35,9 +35,7 @@
#include <boost/none.hpp> #include <boost/none.hpp>
#include <boost/optional/optional.hpp> #include <boost/optional/optional.hpp>
// IWYU pragma: no_include "ext/alloc_traits.h" // IWYU pragma: no_include "ext/alloc_traits.h"
#include "mongo/bson/bsonobjbuilder.h"
#include "mongo/bson/bsontypes.h" #include "mongo/bson/bsontypes.h"
#include "mongo/db/exec/sbe/expressions/expression.h"
#include "mongo/db/index/index_access_method.h" #include "mongo/db/index/index_access_method.h"
#include "mongo/db/index/multikey_paths.h" #include "mongo/db/index/multikey_paths.h"
#include "mongo/db/index/preallocated_container_pool.h" #include "mongo/db/index/preallocated_container_pool.h"
@ -65,9 +63,7 @@
#include "mongo/logv2/log.h" #include "mongo/logv2/log.h"
#include "mongo/util/decorable.h" #include "mongo/util/decorable.h"
#include "mongo/util/shared_buffer_fragment.h" #include "mongo/util/shared_buffer_fragment.h"
#include "mongo/util/stacktrace.h"
#include "mongo/util/str.h" #include "mongo/util/str.h"
#include "mongo/util/time_support.h"
#include <algorithm> #include <algorithm>

View File

@ -45,13 +45,13 @@
#include "mongo/db/query/compiler/logical_model/projection/projection_ast.h" #include "mongo/db/query/compiler/logical_model/projection/projection_ast.h"
#include "mongo/db/query/compiler/logical_model/sort_pattern/sort_pattern.h" #include "mongo/db/query/compiler/logical_model/sort_pattern/sort_pattern.h"
#include "mongo/db/query/compiler/physical_model/query_solution/stage_types.h" #include "mongo/db/query/compiler/physical_model/query_solution/stage_types.h"
#include "mongo/db/query/stage_builder/sbe/abt/comparison_op.h"
#include "mongo/db/query/stage_builder/sbe/builder_state.h" #include "mongo/db/query/stage_builder/sbe/builder_state.h"
#include "mongo/db/query/stage_builder/sbe/sbexpr.h" #include "mongo/db/query/stage_builder/sbe/sbexpr.h"
#include "mongo/db/repl/oplog.h" #include "mongo/db/repl/oplog.h"
#include "mongo/db/storage/index_entry_comparison.h" #include "mongo/db/storage/index_entry_comparison.h"
#include "mongo/db/storage/key_string/key_string.h" #include "mongo/db/storage/key_string/key_string.h"
#include "mongo/util/assert_util.h" #include "mongo/util/assert_util.h"
#include "mongo/util/modules.h"
#include "mongo/util/string_map.h" #include "mongo/util/string_map.h"
#include <cstddef> #include <cstddef>

View File

@ -39,6 +39,7 @@
#include "mongo/db/query/compiler/physical_model/query_solution/stage_types.h" #include "mongo/db/query/compiler/physical_model/query_solution/stage_types.h"
#include "mongo/db/query/stage_builder/sbe/gen_helpers.h" #include "mongo/db/query/stage_builder/sbe/gen_helpers.h"
#include "mongo/db/storage/key_string/key_string.h" #include "mongo/db/storage/key_string/key_string.h"
#include "mongo/util/modules.h"
#include <memory> #include <memory>
#include <string> #include <string>

View File

@ -33,6 +33,7 @@
#include "mongo/db/exec/sbe/values/value.h" #include "mongo/db/exec/sbe/values/value.h"
#include "mongo/db/query/compiler/logical_model/projection/projection.h" #include "mongo/db/query/compiler/logical_model/projection/projection.h"
#include "mongo/db/query/stage_builder/sbe/analysis.h" #include "mongo/db/query/stage_builder/sbe/analysis.h"
#include "mongo/util/modules.h"
namespace mongo::stage_builder { namespace mongo::stage_builder {
class PlanStageSlots; class PlanStageSlots;

View File

@ -1,111 +1,112 @@
/** /**
* Copyright (C) 2023-present MongoDB, Inc. * Copyright (C) 2023-present MongoDB, Inc.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the Server Side Public License, version 1, * it under the terms of the Server Side Public License, version 1,
* as published by MongoDB, Inc. * as published by MongoDB, Inc.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* Server Side Public License for more details. * Server Side Public License for more details.
* *
* You should have received a copy of the Server Side Public License * You should have received a copy of the Server Side Public License
* along with this program. If not, see * along with this program. If not, see
* <http://www.mongodb.com/licensing/server-side-public-license>. * <http://www.mongodb.com/licensing/server-side-public-license>.
* *
* As a special exception, the copyright holders give permission to link the * As a special exception, the copyright holders give permission to link the
* code of portions of this program with the OpenSSL library under certain * code of portions of this program with the OpenSSL library under certain
* conditions as described in each individual source file and distribute * conditions as described in each individual source file and distribute
* linked combinations including the program with the OpenSSL library. You * linked combinations including the program with the OpenSSL library. You
* must comply with the Server Side Public License in all respects for * must comply with the Server Side Public License in all respects for
* all of the code used other than as permitted herein. If you modify file(s) * all of the code used other than as permitted herein. If you modify file(s)
* with this exception, you may extend this exception to your version of the * with this exception, you may extend this exception to your version of the
* file(s), but you are not obligated to do so. If you do not wish to do so, * file(s), but you are not obligated to do so. If you do not wish to do so,
* delete this exception statement from your version. If you delete this * delete this exception statement from your version. If you delete this
* exception statement from all source files in the program, then also delete * exception statement from all source files in the program, then also delete
* it in the license file. * it in the license file.
*/ */
#pragma once #pragma once
#include "mongo/db/pipeline/window_function/window_function_statement.h" #include "mongo/db/pipeline/window_function/window_function_statement.h"
#include "mongo/db/query/stage_builder/sbe/gen_accumulator.h" #include "mongo/db/query/stage_builder/sbe/gen_accumulator.h"
#include "mongo/db/query/stage_builder/sbe/gen_helpers.h" #include "mongo/db/query/stage_builder/sbe/gen_helpers.h"
#include "mongo/util/modules.h"
namespace mongo::stage_builder {
struct WindowOpInfo; namespace mongo::stage_builder {
struct WindowOpInfo;
class WindowOp {
public: class WindowOp {
WindowOp(std::string opName); public:
WindowOp(std::string opName);
WindowOp(StringData opName) : WindowOp(std::string{opName}) {}
WindowOp(StringData opName) : WindowOp(std::string{opName}) {}
WindowOp(const WindowFunctionStatement& wf);
WindowOp(const WindowFunctionStatement& wf);
StringData getOpName() const {
return _opName; StringData getOpName() const {
} return _opName;
}
/**
* This method returns the number of agg expressions that need to be generated for this /**
* WindowOp. * This method returns the number of agg expressions that need to be generated for this
*/ * WindowOp.
size_t getNumAggs() const; */
size_t getNumAggs() const;
/**
* Given one or more input expressions ('input' / 'inputs'), these methods generate the /**
* arg expressions needed for this WindowOp. * Given one or more input expressions ('input' / 'inputs'), these methods generate the
*/ * arg expressions needed for this WindowOp.
AccumInputsPtr buildAddRemoveExprs(StageBuilderState& state, AccumInputsPtr inputs) const; */
AccumInputsPtr buildAddRemoveExprs(StageBuilderState& state, AccumInputsPtr inputs) const;
/**
* Given a vector of named arg expressions ('args' / 'argNames'), this method generates the /**
* accumulate expressions for this WindowOp. * Given a vector of named arg expressions ('args' / 'argNames'), this method generates the
*/ * accumulate expressions for this WindowOp.
SbExpr::Vector buildAddAggs(StageBuilderState& state, AccumInputsPtr inputs) const; */
SbExpr::Vector buildAddAggs(StageBuilderState& state, AccumInputsPtr inputs) const;
/**
* Given a vector of named arg expressions ('args' / 'argNames'), this method generates the /**
* accumulate expressions for this WindowOp. * Given a vector of named arg expressions ('args' / 'argNames'), this method generates the
*/ * accumulate expressions for this WindowOp.
SbExpr::Vector buildRemoveAggs(StageBuilderState& state, AccumInputsPtr inputs) const; */
SbExpr::Vector buildRemoveAggs(StageBuilderState& state, AccumInputsPtr inputs) const;
/**
* Given a map of input expressions ('argExprs'), these methods generate the initialize /**
* expressions for this WindowOp. * Given a map of input expressions ('argExprs'), these methods generate the initialize
*/ * expressions for this WindowOp.
SbExpr::Vector buildInitialize(StageBuilderState& state, AccumInputsPtr inputs) const; */
SbExpr::Vector buildInitialize(StageBuilderState& state, AccumInputsPtr inputs) const;
/**
* Given a map of input expressions ('argExprs'), this method generates the finalize /**
* expression for this WindowOp. * Given a map of input expressions ('argExprs'), this method generates the finalize
*/ * expression for this WindowOp.
SbExpr buildFinalize(StageBuilderState& state, */
AccumInputsPtr inputs, SbExpr buildFinalize(StageBuilderState& state,
const SbSlotVector& aggSlots) const; AccumInputsPtr inputs,
const SbSlotVector& aggSlots) const;
private:
// Static helper method for looking up the info for this WindowOp in the global map. private:
// This method should only be used by WindowOp's constructors. // Static helper method for looking up the info for this WindowOp in the global map.
static const WindowOpInfo* lookupOpInfo(const std::string& opName); // This method should only be used by WindowOp's constructors.
static const WindowOpInfo* lookupOpInfo(const std::string& opName);
// Non-static checked helper method for retrieving the value of '_opInfo'. This method will
// raise a tassert if '_opInfo' is null. // Non-static checked helper method for retrieving the value of '_opInfo'. This method will
const WindowOpInfo* getOpInfo() const { // raise a tassert if '_opInfo' is null.
uassert(8859901, const WindowOpInfo* getOpInfo() const {
str::stream() << "Unrecognized WindowOp name: " << _opName, uassert(8859901,
_opInfo != nullptr); str::stream() << "Unrecognized WindowOp name: " << _opName,
_opInfo != nullptr);
return _opInfo;
} return _opInfo;
}
// Name of the specific accumulation op. This name is used to retrieve info about the op
// from the global map. // Name of the specific accumulation op. This name is used to retrieve info about the op
std::string _opName; // from the global map.
std::string _opName;
// Info about the specific accumulation op named by '_opName'.
const WindowOpInfo* _opInfo = nullptr; // Info about the specific accumulation op named by '_opName'.
}; const WindowOpInfo* _opInfo = nullptr;
} // namespace mongo::stage_builder };
} // namespace mongo::stage_builder

View File

@ -32,11 +32,10 @@
#include "mongo/db/exec/sbe/expressions/expression.h" #include "mongo/db/exec/sbe/expressions/expression.h"
#include "mongo/db/exec/sbe/stages/hash_agg_accumulator.h" #include "mongo/db/exec/sbe/stages/hash_agg_accumulator.h"
#include "mongo/db/exec/sbe/values/slot.h" #include "mongo/db/exec/sbe/values/slot.h"
#include "mongo/db/pipeline/accumulator.h"
#include "mongo/db/query/stage_builder/sbe/abt/syntax/expr.h"
#include "mongo/db/query/stage_builder/sbe/abt/syntax/syntax.h" #include "mongo/db/query/stage_builder/sbe/abt/syntax/syntax.h"
#include "mongo/db/query/stage_builder/sbe/abt_defs.h" #include "mongo/db/query/stage_builder/sbe/abt_defs.h"
#include "mongo/db/query/stage_builder/sbe/type_signature.h" #include "mongo/db/query/stage_builder/sbe/type_signature.h"
#include "mongo/util/modules.h"
#include <variant> #include <variant>
#include <vector> #include <vector>

View File

@ -35,6 +35,7 @@
#include "mongo/db/exec/sbe/values/cell_interface.h" #include "mongo/db/exec/sbe/values/cell_interface.h"
#include "mongo/db/query/stage_builder/sbe/builder_state.h" #include "mongo/db/query/stage_builder/sbe/builder_state.h"
#include "mongo/db/query/stage_builder/sbe/sbexpr.h" #include "mongo/db/query/stage_builder/sbe/sbexpr.h"
#include "mongo/util/modules.h"
namespace mongo::stage_builder { namespace mongo::stage_builder {
inline void makeSbExprOptSbSlotVecHelper(SbExprOptSlotVector& result) {} inline void makeSbExprOptSbSlotVecHelper(SbExprOptSlotVector& result) {}

View File

@ -33,6 +33,7 @@
#include "mongo/db/query/stage_builder/sbe/abt/syntax/syntax.h" #include "mongo/db/query/stage_builder/sbe/abt/syntax/syntax.h"
#include "mongo/db/query/stage_builder/sbe/type_signature.h" #include "mongo/db/query/stage_builder/sbe/type_signature.h"
#include "mongo/stdx/unordered_map.h" #include "mongo/stdx/unordered_map.h"
#include "mongo/util/modules.h"
#include <cstddef> #include <cstddef>
#include <list> #include <list>

View File

@ -30,6 +30,7 @@
#pragma once #pragma once
#include "mongo/db/exec/sbe/values/value.h" #include "mongo/db/exec/sbe/values/value.h"
#include "mongo/util/modules.h"
namespace mongo::stage_builder { namespace mongo::stage_builder {

View File

@ -32,6 +32,7 @@
#include "mongo/db/query/stage_builder/sbe/abt/syntax/expr.h" #include "mongo/db/query/stage_builder/sbe/abt/syntax/expr.h"
#include "mongo/db/query/stage_builder/sbe/abt/syntax/syntax.h" #include "mongo/db/query/stage_builder/sbe/abt/syntax/syntax.h"
#include "mongo/stdx/unordered_map.h" #include "mongo/stdx/unordered_map.h"
#include "mongo/util/modules.h"
namespace mongo::stage_builder { namespace mongo::stage_builder {

View File

@ -34,6 +34,7 @@
#include "mongo/db/query/stage_builder/sbe/sbexpr.h" #include "mongo/db/query/stage_builder/sbe/sbexpr.h"
#include "mongo/db/query/stage_builder/sbe/type_signature.h" #include "mongo/db/query/stage_builder/sbe/type_signature.h"
#include "mongo/stdx/unordered_map.h" #include "mongo/stdx/unordered_map.h"
#include "mongo/util/modules.h"
#include <list> #include <list>