From 9fc7f9dcedb42eb233eefc3ff3ca2aabba42ed59 Mon Sep 17 00:00:00 2001 From: Tyler Neely Date: Mon, 28 Nov 2022 13:03:07 +0000 Subject: [PATCH] Standardize RequestRouter variable names as request_router --- src/query/v2/accessors.cpp | 25 ++--- src/query/v2/accessors.hpp | 13 +-- src/query/v2/bindings/eval.hpp | 4 +- src/query/v2/conversions.hpp | 10 +- src/query/v2/cypher_query_interpreter.cpp | 8 +- src/query/v2/cypher_query_interpreter.hpp | 4 +- .../interpret/awesome_memgraph_functions.hpp | 2 +- src/query/v2/interpreter.cpp | 26 +++--- src/query/v2/plan/operator.cpp | 19 ++-- src/query/v2/plan/pretty_print.cpp | 92 +++++++++---------- src/query/v2/plan/pretty_print.hpp | 28 +++--- tests/simulation/request_router.cpp | 32 +++---- 12 files changed, 133 insertions(+), 130 deletions(-) diff --git a/src/query/v2/accessors.cpp b/src/query/v2/accessors.cpp index a28df0fe5..2eedfcf4d 100644 --- a/src/query/v2/accessors.cpp +++ b/src/query/v2/accessors.cpp @@ -15,15 +15,15 @@ #include "storage/v3/id_types.hpp" namespace memgraph::query::v2::accessors { -EdgeAccessor::EdgeAccessor(Edge edge, const RequestRouterInterface *manager) - : edge(std::move(edge)), manager_(manager) {} +EdgeAccessor::EdgeAccessor(Edge edge, const RequestRouterInterface *request_router) + : edge(std::move(edge)), request_router_(request_router) {} EdgeTypeId EdgeAccessor::EdgeType() const { return edge.type.id; } const std::vector> &EdgeAccessor::Properties() const { return edge.properties; } Value EdgeAccessor::GetProperty(const std::string &prop_name) const { - auto prop_id = manager_->NameToProperty(prop_name); + auto prop_id = request_router_->NameToProperty(prop_name); auto it = std::find_if(edge.properties.begin(), edge.properties.end(), [&](auto &pr) { return prop_id == pr.first; }); if (it == edge.properties.end()) { return {}; @@ -36,19 +36,20 @@ const Edge &EdgeAccessor::GetEdge() const { return edge; } bool EdgeAccessor::IsCycle() const { return edge.src == edge.dst; }; VertexAccessor EdgeAccessor::To() const { - return VertexAccessor(Vertex{edge.dst}, std::vector>{}, manager_); + return VertexAccessor(Vertex{edge.dst}, std::vector>{}, request_router_); } VertexAccessor EdgeAccessor::From() const { - return VertexAccessor(Vertex{edge.src}, std::vector>{}, manager_); + return VertexAccessor(Vertex{edge.src}, std::vector>{}, request_router_); } VertexAccessor::VertexAccessor(Vertex v, std::vector> props, - const RequestRouterInterface *manager) - : vertex(std::move(v)), properties(std::move(props)), manager_(manager) {} + const RequestRouterInterface *request_router) + : vertex(std::move(v)), properties(std::move(props)), request_router_(request_router) {} -VertexAccessor::VertexAccessor(Vertex v, std::map &&props, const RequestRouterInterface *manager) - : vertex(std::move(v)), manager_(manager) { +VertexAccessor::VertexAccessor(Vertex v, std::map &&props, + const RequestRouterInterface *request_router) + : vertex(std::move(v)), request_router_(request_router) { properties.reserve(props.size()); for (auto &[id, value] : props) { properties.emplace_back(std::make_pair(id, std::move(value))); @@ -56,8 +57,8 @@ VertexAccessor::VertexAccessor(Vertex v, std::map &&props, co } VertexAccessor::VertexAccessor(Vertex v, const std::map &props, - const RequestRouterInterface *manager) - : vertex(std::move(v)), manager_(manager) { + const RequestRouterInterface *request_router) + : vertex(std::move(v)), request_router_(request_router) { properties.reserve(props.size()); for (const auto &[id, value] : props) { properties.emplace_back(std::make_pair(id, value)); @@ -87,7 +88,7 @@ Value VertexAccessor::GetProperty(PropertyId prop_id) const { // NOLINTNEXTLINE(readability-convert-member-functions-to-static) Value VertexAccessor::GetProperty(const std::string &prop_name) const { - return GetProperty(manager_->NameToProperty(prop_name)); + return GetProperty(request_router_->NameToProperty(prop_name)); } msgs::Vertex VertexAccessor::GetVertex() const { return vertex; } diff --git a/src/query/v2/accessors.hpp b/src/query/v2/accessors.hpp index b5585953f..db22d29cc 100644 --- a/src/query/v2/accessors.hpp +++ b/src/query/v2/accessors.hpp @@ -41,7 +41,7 @@ class VertexAccessor; class EdgeAccessor final { public: - explicit EdgeAccessor(Edge edge, const RequestRouterInterface *manager); + explicit EdgeAccessor(Edge edge, const RequestRouterInterface *request_router); [[nodiscard]] EdgeTypeId EdgeType() const; @@ -69,7 +69,7 @@ class EdgeAccessor final { private: Edge edge; - const RequestRouterInterface *manager_; + const RequestRouterInterface *request_router_; }; class VertexAccessor final { @@ -77,10 +77,11 @@ class VertexAccessor final { using PropertyId = msgs::PropertyId; using Label = msgs::Label; using VertexId = msgs::VertexId; - VertexAccessor(Vertex v, std::vector> props, const RequestRouterInterface *manager); + VertexAccessor(Vertex v, std::vector> props, + const RequestRouterInterface *request_router); - VertexAccessor(Vertex v, std::map &&props, const RequestRouterInterface *manager); - VertexAccessor(Vertex v, const std::map &props, const RequestRouterInterface *manager); + VertexAccessor(Vertex v, std::map &&props, const RequestRouterInterface *request_router); + VertexAccessor(Vertex v, const std::map &props, const RequestRouterInterface *request_router); [[nodiscard]] Label PrimaryLabel() const; @@ -149,7 +150,7 @@ class VertexAccessor final { private: Vertex vertex; std::vector> properties; - const RequestRouterInterface *manager_; + const RequestRouterInterface *request_router_; }; // inline VertexAccessor EdgeAccessor::To() const { return VertexAccessor(impl_.ToVertex()); } diff --git a/src/query/v2/bindings/eval.hpp b/src/query/v2/bindings/eval.hpp index 912850e87..c7f52f201 100644 --- a/src/query/v2/bindings/eval.hpp +++ b/src/query/v2/bindings/eval.hpp @@ -35,8 +35,8 @@ class Callable { auto operator()(const storage::v3::PropertyValue &val) const { return storage::v3::PropertyToTypedValue(val); }; - auto operator()(const msgs::Value &val, RequestRouterInterface *manager) const { - return ValueToTypedValue(val, manager); + auto operator()(const msgs::Value &val, RequestRouterInterface *request_router) const { + return ValueToTypedValue(val, request_router); }; }; diff --git a/src/query/v2/conversions.hpp b/src/query/v2/conversions.hpp index 161f89979..ac052327d 100644 --- a/src/query/v2/conversions.hpp +++ b/src/query/v2/conversions.hpp @@ -17,7 +17,7 @@ namespace memgraph::query::v2 { -inline TypedValue ValueToTypedValue(const msgs::Value &value, RequestRouterInterface *manager) { +inline TypedValue ValueToTypedValue(const msgs::Value &value, RequestRouterInterface *request_router) { using Value = msgs::Value; switch (value.type) { case Value::Type::Null: @@ -35,7 +35,7 @@ inline TypedValue ValueToTypedValue(const msgs::Value &value, RequestRouterInter std::vector dst; dst.reserve(lst.size()); for (const auto &elem : lst) { - dst.push_back(ValueToTypedValue(elem, manager)); + dst.push_back(ValueToTypedValue(elem, request_router)); } return TypedValue(std::move(dst)); } @@ -43,15 +43,15 @@ inline TypedValue ValueToTypedValue(const msgs::Value &value, RequestRouterInter const auto &value_map = value.map_v; std::map dst; for (const auto &[key, val] : value_map) { - dst[key] = ValueToTypedValue(val, manager); + dst[key] = ValueToTypedValue(val, request_router); } return TypedValue(std::move(dst)); } case Value::Type::Vertex: return TypedValue(accessors::VertexAccessor( - value.vertex_v, std::vector>{}, manager)); + value.vertex_v, std::vector>{}, request_router)); case Value::Type::Edge: - return TypedValue(accessors::EdgeAccessor(value.edge_v, manager)); + return TypedValue(accessors::EdgeAccessor(value.edge_v, request_router)); } throw std::runtime_error("Incorrect type in conversion"); } diff --git a/src/query/v2/cypher_query_interpreter.cpp b/src/query/v2/cypher_query_interpreter.cpp index 880165ad8..f3f8e48d7 100644 --- a/src/query/v2/cypher_query_interpreter.cpp +++ b/src/query/v2/cypher_query_interpreter.cpp @@ -118,9 +118,9 @@ ParsedQuery ParseQuery(const std::string &query_string, const std::map MakeLogicalPlan(AstStorage ast_storage, CypherQuery *query, const Parameters ¶meters, - RequestRouterInterface *shard_manager, + RequestRouterInterface *request_router, const std::vector &predefined_identifiers) { - auto vertex_counts = plan::MakeVertexCountCache(shard_manager); + auto vertex_counts = plan::MakeVertexCountCache(request_router); auto symbol_table = expr::MakeSymbolTable(query, predefined_identifiers); auto planning_context = plan::MakePlanningContext(&ast_storage, &symbol_table, query, &vertex_counts); auto [root, cost] = plan::MakeLogicalPlan(&planning_context, parameters, FLAGS_query_cost_planner); @@ -130,7 +130,7 @@ std::unique_ptr MakeLogicalPlan(AstStorage ast_storage, CypherQuery std::shared_ptr CypherQueryToPlan(uint64_t hash, AstStorage ast_storage, CypherQuery *query, const Parameters ¶meters, utils::SkipList *plan_cache, - RequestRouterInterface *shard_manager, + RequestRouterInterface *request_router, const std::vector &predefined_identifiers) { std::optional::Accessor> plan_cache_access; if (plan_cache) { @@ -146,7 +146,7 @@ std::shared_ptr CypherQueryToPlan(uint64_t hash, AstStorage ast_stor } auto plan = std::make_shared( - MakeLogicalPlan(std::move(ast_storage), query, parameters, shard_manager, predefined_identifiers)); + MakeLogicalPlan(std::move(ast_storage), query, parameters, request_router, predefined_identifiers)); if (plan_cache_access) { plan_cache_access->insert({hash, plan}); } diff --git a/src/query/v2/cypher_query_interpreter.hpp b/src/query/v2/cypher_query_interpreter.hpp index c9d65047c..688e52fed 100644 --- a/src/query/v2/cypher_query_interpreter.hpp +++ b/src/query/v2/cypher_query_interpreter.hpp @@ -132,7 +132,7 @@ class SingleNodeLogicalPlan final : public LogicalPlan { }; std::unique_ptr MakeLogicalPlan(AstStorage ast_storage, CypherQuery *query, const Parameters ¶meters, - RequestRouterInterface *shard_manager, + RequestRouterInterface *request_router, const std::vector &predefined_identifiers); /** @@ -145,7 +145,7 @@ std::unique_ptr MakeLogicalPlan(AstStorage ast_storage, CypherQuery */ std::shared_ptr CypherQueryToPlan(uint64_t hash, AstStorage ast_storage, CypherQuery *query, const Parameters ¶meters, utils::SkipList *plan_cache, - RequestRouterInterface *shard_manager, + RequestRouterInterface *request_router, const std::vector &predefined_identifiers = {}); } // namespace memgraph::query::v2 diff --git a/src/query/v2/interpret/awesome_memgraph_functions.hpp b/src/query/v2/interpret/awesome_memgraph_functions.hpp index 35ed1d797..8ca3eacb3 100644 --- a/src/query/v2/interpret/awesome_memgraph_functions.hpp +++ b/src/query/v2/interpret/awesome_memgraph_functions.hpp @@ -34,7 +34,7 @@ const char kId[] = "ID"; struct FunctionContext { // TODO(kostasrim) consider optional here. RequestRouter does not exist on the storage. // DbAccessor *db_accessor; - RequestRouterInterface *manager; + RequestRouterInterface *request_router; utils::MemoryResource *memory; int64_t timestamp; std::unordered_map *counters; diff --git a/src/query/v2/interpreter.cpp b/src/query/v2/interpreter.cpp index 94ff7a8ff..1c2d6dadf 100644 --- a/src/query/v2/interpreter.cpp +++ b/src/query/v2/interpreter.cpp @@ -143,7 +143,7 @@ class ReplQueryHandler final : public query::v2::ReplicationQueryHandler { /// @throw QueryRuntimeException if an error ocurred. Callback HandleAuthQuery(AuthQuery *auth_query, AuthQueryHandler *auth, const Parameters ¶meters, - RequestRouterInterface *manager) { + RequestRouterInterface *request_router) { // Empty frame for evaluation of password expression. This is OK since // password should be either null or string literal and it's evaluation // should not depend on frame. @@ -154,7 +154,7 @@ Callback HandleAuthQuery(AuthQuery *auth_query, AuthQueryHandler *auth, const Pa // the argument to Callback. evaluation_context.timestamp = QueryTimestamp(); evaluation_context.parameters = parameters; - ExpressionEvaluator evaluator(&frame, symbol_table, evaluation_context, manager, storage::v3::View::OLD); + ExpressionEvaluator evaluator(&frame, symbol_table, evaluation_context, request_router, storage::v3::View::OLD); std::string username = auth_query->user_; std::string rolename = auth_query->role_; @@ -312,7 +312,7 @@ Callback HandleAuthQuery(AuthQuery *auth_query, AuthQueryHandler *auth, const Pa } Callback HandleReplicationQuery(ReplicationQuery *repl_query, const Parameters ¶meters, - InterpreterContext *interpreter_context, RequestRouterInterface *manager, + InterpreterContext *interpreter_context, RequestRouterInterface *request_router, std::vector *notifications) { expr::Frame frame(0); SymbolTable symbol_table; @@ -321,7 +321,7 @@ Callback HandleReplicationQuery(ReplicationQuery *repl_query, const Parameters & // the argument to Callback. evaluation_context.timestamp = QueryTimestamp(); evaluation_context.parameters = parameters; - ExpressionEvaluator evaluator(&frame, symbol_table, evaluation_context, manager, storage::v3::View::OLD); + ExpressionEvaluator evaluator(&frame, symbol_table, evaluation_context, request_router, storage::v3::View::OLD); Callback callback; switch (repl_query->action_) { @@ -448,7 +448,7 @@ Callback HandleReplicationQuery(ReplicationQuery *repl_query, const Parameters & } Callback HandleSettingQuery(SettingQuery *setting_query, const Parameters ¶meters, - RequestRouterInterface *manager) { + RequestRouterInterface *request_router) { expr::Frame frame(0); SymbolTable symbol_table; EvaluationContext evaluation_context; @@ -458,7 +458,7 @@ Callback HandleSettingQuery(SettingQuery *setting_query, const Parameters ¶m std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()) .count(); evaluation_context.parameters = parameters; - ExpressionEvaluator evaluator(&frame, symbol_table, evaluation_context, manager, storage::v3::View::OLD); + ExpressionEvaluator evaluator(&frame, symbol_table, evaluation_context, request_router, storage::v3::View::OLD); Callback callback; switch (setting_query->action_) { @@ -1182,14 +1182,14 @@ PreparedQuery PrepareIndexQuery(ParsedQuery parsed_query, bool in_explicit_trans PreparedQuery PrepareAuthQuery(ParsedQuery parsed_query, bool in_explicit_transaction, std::map *summary, InterpreterContext *interpreter_context, DbAccessor *dba, utils::MemoryResource *execution_memory, - RequestRouterInterface *manager) { + RequestRouterInterface *request_router) { if (in_explicit_transaction) { throw UserModificationInMulticommandTxException(); } auto *auth_query = utils::Downcast(parsed_query.query); - auto callback = HandleAuthQuery(auth_query, interpreter_context->auth, parsed_query.parameters, manager); + auto callback = HandleAuthQuery(auth_query, interpreter_context->auth, parsed_query.parameters, request_router); SymbolTable symbol_table; std::vector output_symbols; @@ -1218,14 +1218,14 @@ PreparedQuery PrepareAuthQuery(ParsedQuery parsed_query, bool in_explicit_transa PreparedQuery PrepareReplicationQuery(ParsedQuery parsed_query, const bool in_explicit_transaction, std::vector *notifications, InterpreterContext *interpreter_context, - RequestRouterInterface *manager) { + RequestRouterInterface *request_router) { if (in_explicit_transaction) { throw ReplicationModificationInMulticommandTxException(); } auto *replication_query = utils::Downcast(parsed_query.query); - auto callback = - HandleReplicationQuery(replication_query, parsed_query.parameters, interpreter_context, manager, notifications); + auto callback = HandleReplicationQuery(replication_query, parsed_query.parameters, interpreter_context, + request_router, notifications); return PreparedQuery{callback.header, std::move(parsed_query.required_privileges), [callback_fn = std::move(callback.fn), pull_plan = std::shared_ptr{nullptr}]( @@ -1314,14 +1314,14 @@ PreparedQuery PrepareCreateSnapshotQuery(ParsedQuery parsed_query, bool in_expli } PreparedQuery PrepareSettingQuery(ParsedQuery parsed_query, const bool in_explicit_transaction, - RequestRouterInterface *manager) { + RequestRouterInterface *request_router) { if (in_explicit_transaction) { throw SettingConfigInMulticommandTxException{}; } auto *setting_query = utils::Downcast(parsed_query.query); MG_ASSERT(setting_query); - auto callback = HandleSettingQuery(setting_query, parsed_query.parameters, manager); + auto callback = HandleSettingQuery(setting_query, parsed_query.parameters, request_router); return PreparedQuery{std::move(callback.header), std::move(parsed_query.required_privileges), [callback_fn = std::move(callback.fn), pull_plan = std::shared_ptr{nullptr}]( diff --git a/src/query/v2/plan/operator.cpp b/src/query/v2/plan/operator.cpp index 2d2849f0d..014be0d62 100644 --- a/src/query/v2/plan/operator.cpp +++ b/src/query/v2/plan/operator.cpp @@ -177,10 +177,10 @@ class DistributedCreateNodeCursor : public Cursor { bool Pull(Frame &frame, ExecutionContext &context) override { SCOPED_PROFILE_OP("CreateNode"); if (input_cursor_->Pull(frame, context)) { - auto &shard_manager = context.request_router; + auto &request_router = context.request_router; { SCOPED_REQUEST_WAIT_PROFILE; - shard_manager->Request(state_, NodeCreationInfoToRequest(context, frame)); + request_router->Request(state_, NodeCreationInfoToRequest(context, frame)); } PlaceNodeOnTheFrame(frame, context); return true; @@ -386,10 +386,10 @@ class DistributedScanAllAndFilterCursor : public Cursor { using VertexAccessor = accessors::VertexAccessor; - bool MakeRequest(RequestRouterInterface &shard_manager, ExecutionContext &context) { + bool MakeRequest(RequestRouterInterface &request_router, ExecutionContext &context) { { SCOPED_REQUEST_WAIT_PROFILE; - current_batch = shard_manager.Request(request_state_); + current_batch = request_router.Request(request_state_); } current_vertex_it = current_batch.begin(); return !current_batch.empty(); @@ -398,7 +398,7 @@ class DistributedScanAllAndFilterCursor : public Cursor { bool Pull(Frame &frame, ExecutionContext &context) override { SCOPED_PROFILE_OP(op_name_); - auto &shard_manager = *context.request_router; + auto &request_router = *context.request_router; while (true) { if (MustAbort(context)) { throw HintedAbortError(); @@ -411,10 +411,11 @@ class DistributedScanAllAndFilterCursor : public Cursor { } } - request_state_.label = label_.has_value() ? std::make_optional(shard_manager.LabelToName(*label_)) : std::nullopt; + request_state_.label = + label_.has_value() ? std::make_optional(request_router.LabelToName(*label_)) : std::nullopt; if (current_vertex_it == current_batch.end() && - (request_state_.state == State::COMPLETED || !MakeRequest(shard_manager, context))) { + (request_state_.state == State::COMPLETED || !MakeRequest(request_router, context))) { ResetExecutionState(); continue; } @@ -2338,11 +2339,11 @@ class DistributedCreateExpandCursor : public Cursor { if (!input_cursor_->Pull(frame, context)) { return false; } - auto &shard_manager = context.request_router; + auto &request_router = context.request_router; ResetExecutionState(); { SCOPED_REQUEST_WAIT_PROFILE; - shard_manager->Request(state_, ExpandCreationInfoToRequest(context, frame)); + request_router->Request(state_, ExpandCreationInfoToRequest(context, frame)); } return true; } diff --git a/src/query/v2/plan/pretty_print.cpp b/src/query/v2/plan/pretty_print.cpp index 0e8d09e2b..bc30a3890 100644 --- a/src/query/v2/plan/pretty_print.cpp +++ b/src/query/v2/plan/pretty_print.cpp @@ -19,8 +19,8 @@ namespace memgraph::query::v2::plan { -PlanPrinter::PlanPrinter(const RequestRouterInterface *request_manager, std::ostream *out) - : request_manager_(request_manager), out_(out) {} +PlanPrinter::PlanPrinter(const RequestRouterInterface *request_router, std::ostream *out) + : request_router_(request_router), out_(out) {} #define PRE_VISIT(TOp) \ bool PlanPrinter::PreVisit(TOp &) { \ @@ -34,7 +34,7 @@ bool PlanPrinter::PreVisit(CreateExpand &op) { WithPrintLn([&](auto &out) { out << "* CreateExpand (" << op.input_symbol_.name() << ")" << (op.edge_info_.direction == query::v2::EdgeAtom::Direction::IN ? "<-" : "-") << "[" - << op.edge_info_.symbol.name() << ":" << request_manager_->EdgeTypeToName(op.edge_info_.edge_type) << "]" + << op.edge_info_.symbol.name() << ":" << request_router_->EdgeTypeToName(op.edge_info_.edge_type) << "]" << (op.edge_info_.direction == query::v2::EdgeAtom::Direction::OUT ? "->" : "-") << "(" << op.node_info_.symbol.name() << ")"; }); @@ -54,7 +54,7 @@ bool PlanPrinter::PreVisit(query::v2::plan::ScanAll &op) { bool PlanPrinter::PreVisit(query::v2::plan::ScanAllByLabel &op) { WithPrintLn([&](auto &out) { out << "* ScanAllByLabel" - << " (" << op.output_symbol_.name() << " :" << request_manager_->LabelToName(op.label_) << ")"; + << " (" << op.output_symbol_.name() << " :" << request_router_->LabelToName(op.label_) << ")"; }); return true; } @@ -62,8 +62,8 @@ bool PlanPrinter::PreVisit(query::v2::plan::ScanAllByLabel &op) { bool PlanPrinter::PreVisit(query::v2::plan::ScanAllByLabelPropertyValue &op) { WithPrintLn([&](auto &out) { out << "* ScanAllByLabelPropertyValue" - << " (" << op.output_symbol_.name() << " :" << request_manager_->LabelToName(op.label_) << " {" - << request_manager_->PropertyToName(op.property_) << "})"; + << " (" << op.output_symbol_.name() << " :" << request_router_->LabelToName(op.label_) << " {" + << request_router_->PropertyToName(op.property_) << "})"; }); return true; } @@ -71,8 +71,8 @@ bool PlanPrinter::PreVisit(query::v2::plan::ScanAllByLabelPropertyValue &op) { bool PlanPrinter::PreVisit(query::v2::plan::ScanAllByLabelPropertyRange &op) { WithPrintLn([&](auto &out) { out << "* ScanAllByLabelPropertyRange" - << " (" << op.output_symbol_.name() << " :" << request_manager_->LabelToName(op.label_) << " {" - << request_manager_->PropertyToName(op.property_) << "})"; + << " (" << op.output_symbol_.name() << " :" << request_router_->LabelToName(op.label_) << " {" + << request_router_->PropertyToName(op.property_) << "})"; }); return true; } @@ -80,8 +80,8 @@ bool PlanPrinter::PreVisit(query::v2::plan::ScanAllByLabelPropertyRange &op) { bool PlanPrinter::PreVisit(query::v2::plan::ScanAllByLabelProperty &op) { WithPrintLn([&](auto &out) { out << "* ScanAllByLabelProperty" - << " (" << op.output_symbol_.name() << " :" << request_manager_->LabelToName(op.label_) << " {" - << request_manager_->PropertyToName(op.property_) << "})"; + << " (" << op.output_symbol_.name() << " :" << request_router_->LabelToName(op.label_) << " {" + << request_router_->PropertyToName(op.property_) << "})"; }); return true; } @@ -100,7 +100,7 @@ bool PlanPrinter::PreVisit(query::v2::plan::Expand &op) { << (op.common_.direction == query::v2::EdgeAtom::Direction::IN ? "<-" : "-") << "[" << op.common_.edge_symbol.name(); utils::PrintIterable(*out_, op.common_.edge_types, "|", [this](auto &stream, const auto &edge_type) { - stream << ":" << request_manager_->EdgeTypeToName(edge_type); + stream << ":" << request_router_->EdgeTypeToName(edge_type); }); *out_ << "]" << (op.common_.direction == query::v2::EdgeAtom::Direction::OUT ? "->" : "-") << "(" << op.common_.node_symbol.name() << ")"; @@ -129,7 +129,7 @@ bool PlanPrinter::PreVisit(query::v2::plan::ExpandVariable &op) { << (op.common_.direction == query::v2::EdgeAtom::Direction::IN ? "<-" : "-") << "[" << op.common_.edge_symbol.name(); utils::PrintIterable(*out_, op.common_.edge_types, "|", [this](auto &stream, const auto &edge_type) { - stream << ":" << request_manager_->EdgeTypeToName(edge_type); + stream << ":" << request_router_->EdgeTypeToName(edge_type); }); *out_ << "]" << (op.common_.direction == query::v2::EdgeAtom::Direction::OUT ? "->" : "-") << "(" << op.common_.node_symbol.name() << ")"; @@ -263,14 +263,14 @@ void PlanPrinter::Branch(query::v2::plan::LogicalOperator &op, const std::string --depth_; } -void PrettyPrint(const RequestRouterInterface &request_manager, const LogicalOperator *plan_root, std::ostream *out) { - PlanPrinter printer(&request_manager, out); +void PrettyPrint(const RequestRouterInterface &request_router, const LogicalOperator *plan_root, std::ostream *out) { + PlanPrinter printer(&request_router, out); // FIXME(mtomic): We should make visitors that take const arguments. const_cast(plan_root)->Accept(printer); } -nlohmann::json PlanToJson(const RequestRouterInterface &request_manager, const LogicalOperator *plan_root) { - impl::PlanToJsonVisitor visitor(&request_manager); +nlohmann::json PlanToJson(const RequestRouterInterface &request_router, const LogicalOperator *plan_root) { + impl::PlanToJsonVisitor visitor(&request_router); // FIXME(mtomic): We should make visitors that take const arguments. const_cast(plan_root)->Accept(visitor); return visitor.output(); @@ -348,16 +348,16 @@ json ToJson(const utils::Bound &bound) { json ToJson(const Symbol &symbol) { return symbol.name(); } -json ToJson(storage::v3::EdgeTypeId edge_type, const RequestRouterInterface &request_manager) { - return request_manager.EdgeTypeToName(edge_type); +json ToJson(storage::v3::EdgeTypeId edge_type, const RequestRouterInterface &request_router) { + return request_router.EdgeTypeToName(edge_type); } -json ToJson(storage::v3::LabelId label, const RequestRouterInterface &request_manager) { - return request_manager.LabelToName(label); +json ToJson(storage::v3::LabelId label, const RequestRouterInterface &request_router) { + return request_router.LabelToName(label); } -json ToJson(storage::v3::PropertyId property, const RequestRouterInterface &request_manager) { - return request_manager.PropertyToName(property); +json ToJson(storage::v3::PropertyId property, const RequestRouterInterface &request_router) { + return request_router.PropertyToName(property); } json ToJson(NamedExpression *nexpr) { @@ -368,29 +368,29 @@ json ToJson(NamedExpression *nexpr) { } json ToJson(const std::vector> &properties, - const RequestRouterInterface &request_manager) { + const RequestRouterInterface &request_router) { json json; for (const auto &prop_pair : properties) { - json.emplace(ToJson(prop_pair.first, request_manager), ToJson(prop_pair.second)); + json.emplace(ToJson(prop_pair.first, request_router), ToJson(prop_pair.second)); } return json; } -json ToJson(const NodeCreationInfo &node_info, const RequestRouterInterface &request_manager) { +json ToJson(const NodeCreationInfo &node_info, const RequestRouterInterface &request_router) { json self; self["symbol"] = ToJson(node_info.symbol); - self["labels"] = ToJson(node_info.labels, request_manager); + self["labels"] = ToJson(node_info.labels, request_router); const auto *props = std::get_if(&node_info.properties); - self["properties"] = ToJson(props ? *props : PropertiesMapList{}, request_manager); + self["properties"] = ToJson(props ? *props : PropertiesMapList{}, request_router); return self; } -json ToJson(const EdgeCreationInfo &edge_info, const RequestRouterInterface &request_manager) { +json ToJson(const EdgeCreationInfo &edge_info, const RequestRouterInterface &request_router) { json self; self["symbol"] = ToJson(edge_info.symbol); const auto *props = std::get_if(&edge_info.properties); - self["properties"] = ToJson(props ? *props : PropertiesMapList{}, request_manager); - self["edge_type"] = ToJson(edge_info.edge_type, request_manager); + self["properties"] = ToJson(props ? *props : PropertiesMapList{}, request_router); + self["edge_type"] = ToJson(edge_info.edge_type, request_router); self["direction"] = ToString(edge_info.direction); return self; } @@ -432,7 +432,7 @@ bool PlanToJsonVisitor::PreVisit(ScanAll &op) { bool PlanToJsonVisitor::PreVisit(ScanAllByLabel &op) { json self; self["name"] = "ScanAllByLabel"; - self["label"] = ToJson(op.label_, *request_manager_); + self["label"] = ToJson(op.label_, *request_router_); self["output_symbol"] = ToJson(op.output_symbol_); op.input_->Accept(*this); @@ -445,8 +445,8 @@ bool PlanToJsonVisitor::PreVisit(ScanAllByLabel &op) { bool PlanToJsonVisitor::PreVisit(ScanAllByLabelPropertyRange &op) { json self; self["name"] = "ScanAllByLabelPropertyRange"; - self["label"] = ToJson(op.label_, *request_manager_); - self["property"] = ToJson(op.property_, *request_manager_); + self["label"] = ToJson(op.label_, *request_router_); + self["property"] = ToJson(op.property_, *request_router_); self["lower_bound"] = op.lower_bound_ ? ToJson(*op.lower_bound_) : json(); self["upper_bound"] = op.upper_bound_ ? ToJson(*op.upper_bound_) : json(); self["output_symbol"] = ToJson(op.output_symbol_); @@ -461,8 +461,8 @@ bool PlanToJsonVisitor::PreVisit(ScanAllByLabelPropertyRange &op) { bool PlanToJsonVisitor::PreVisit(ScanAllByLabelPropertyValue &op) { json self; self["name"] = "ScanAllByLabelPropertyValue"; - self["label"] = ToJson(op.label_, *request_manager_); - self["property"] = ToJson(op.property_, *request_manager_); + self["label"] = ToJson(op.label_, *request_router_); + self["property"] = ToJson(op.property_, *request_router_); self["expression"] = ToJson(op.expression_); self["output_symbol"] = ToJson(op.output_symbol_); @@ -476,8 +476,8 @@ bool PlanToJsonVisitor::PreVisit(ScanAllByLabelPropertyValue &op) { bool PlanToJsonVisitor::PreVisit(ScanAllByLabelProperty &op) { json self; self["name"] = "ScanAllByLabelProperty"; - self["label"] = ToJson(op.label_, *request_manager_); - self["property"] = ToJson(op.property_, *request_manager_); + self["label"] = ToJson(op.label_, *request_router_); + self["property"] = ToJson(op.property_, *request_router_); self["output_symbol"] = ToJson(op.output_symbol_); op.input_->Accept(*this); @@ -500,7 +500,7 @@ bool PlanToJsonVisitor::PreVisit(ScanAllById &op) { bool PlanToJsonVisitor::PreVisit(CreateNode &op) { json self; self["name"] = "CreateNode"; - self["node_info"] = ToJson(op.node_info_, *request_manager_); + self["node_info"] = ToJson(op.node_info_, *request_router_); op.input_->Accept(*this); self["input"] = PopOutput(); @@ -513,8 +513,8 @@ bool PlanToJsonVisitor::PreVisit(CreateExpand &op) { json self; self["name"] = "CreateExpand"; self["input_symbol"] = ToJson(op.input_symbol_); - self["node_info"] = ToJson(op.node_info_, *request_manager_); - self["edge_info"] = ToJson(op.edge_info_, *request_manager_); + self["node_info"] = ToJson(op.node_info_, *request_router_); + self["edge_info"] = ToJson(op.edge_info_, *request_router_); self["existing_node"] = op.existing_node_; op.input_->Accept(*this); @@ -530,7 +530,7 @@ bool PlanToJsonVisitor::PreVisit(Expand &op) { self["input_symbol"] = ToJson(op.input_symbol_); self["node_symbol"] = ToJson(op.common_.node_symbol); self["edge_symbol"] = ToJson(op.common_.edge_symbol); - self["edge_types"] = ToJson(op.common_.edge_types, *request_manager_); + self["edge_types"] = ToJson(op.common_.edge_types, *request_router_); self["direction"] = ToString(op.common_.direction); self["existing_node"] = op.common_.existing_node; @@ -547,7 +547,7 @@ bool PlanToJsonVisitor::PreVisit(ExpandVariable &op) { self["input_symbol"] = ToJson(op.input_symbol_); self["node_symbol"] = ToJson(op.common_.node_symbol); self["edge_symbol"] = ToJson(op.common_.edge_symbol); - self["edge_types"] = ToJson(op.common_.edge_types, *request_manager_); + self["edge_types"] = ToJson(op.common_.edge_types, *request_router_); self["direction"] = ToString(op.common_.direction); self["type"] = ToString(op.type_); self["is_reverse"] = op.is_reverse_; @@ -622,7 +622,7 @@ bool PlanToJsonVisitor::PreVisit(Delete &op) { bool PlanToJsonVisitor::PreVisit(SetProperty &op) { json self; self["name"] = "SetProperty"; - self["property"] = ToJson(op.property_, *request_manager_); + self["property"] = ToJson(op.property_, *request_router_); self["lhs"] = ToJson(op.lhs_); self["rhs"] = ToJson(op.rhs_); @@ -659,7 +659,7 @@ bool PlanToJsonVisitor::PreVisit(SetLabels &op) { json self; self["name"] = "SetLabels"; self["input_symbol"] = ToJson(op.input_symbol_); - self["labels"] = ToJson(op.labels_, *request_manager_); + self["labels"] = ToJson(op.labels_, *request_router_); op.input_->Accept(*this); self["input"] = PopOutput(); @@ -671,7 +671,7 @@ bool PlanToJsonVisitor::PreVisit(SetLabels &op) { bool PlanToJsonVisitor::PreVisit(RemoveProperty &op) { json self; self["name"] = "RemoveProperty"; - self["property"] = ToJson(op.property_, *request_manager_); + self["property"] = ToJson(op.property_, *request_router_); self["lhs"] = ToJson(op.lhs_); op.input_->Accept(*this); @@ -685,7 +685,7 @@ bool PlanToJsonVisitor::PreVisit(RemoveLabels &op) { json self; self["name"] = "RemoveLabels"; self["input_symbol"] = ToJson(op.input_symbol_); - self["labels"] = ToJson(op.labels_, *request_manager_); + self["labels"] = ToJson(op.labels_, *request_router_); op.input_->Accept(*this); self["input"] = PopOutput(); diff --git a/src/query/v2/plan/pretty_print.hpp b/src/query/v2/plan/pretty_print.hpp index 7e97de3ff..4094d7c81 100644 --- a/src/query/v2/plan/pretty_print.hpp +++ b/src/query/v2/plan/pretty_print.hpp @@ -30,16 +30,16 @@ class LogicalOperator; /// RequestRouter is needed for resolving label and property names. /// Note that `plan_root` isn't modified, but we can't take it as a const /// because we don't have support for visiting a const LogicalOperator. -void PrettyPrint(const RequestRouterInterface &request_manager, const LogicalOperator *plan_root, std::ostream *out); +void PrettyPrint(const RequestRouterInterface &request_router, const LogicalOperator *plan_root, std::ostream *out); /// Overload of `PrettyPrint` which defaults the `std::ostream` to `std::cout`. -inline void PrettyPrint(const RequestRouterInterface &request_manager, const LogicalOperator *plan_root) { - PrettyPrint(request_manager, plan_root, &std::cout); +inline void PrettyPrint(const RequestRouterInterface &request_router, const LogicalOperator *plan_root) { + PrettyPrint(request_router, plan_root, &std::cout); } /// Convert a `LogicalOperator` plan to a JSON representation. /// DbAccessor is needed for resolving label and property names. -nlohmann::json PlanToJson(const RequestRouterInterface &request_manager, const LogicalOperator *plan_root); +nlohmann::json PlanToJson(const RequestRouterInterface &request_router, const LogicalOperator *plan_root); class PlanPrinter : public virtual HierarchicalLogicalOperatorVisitor { public: @@ -47,7 +47,7 @@ class PlanPrinter : public virtual HierarchicalLogicalOperatorVisitor { using HierarchicalLogicalOperatorVisitor::PreVisit; using HierarchicalLogicalOperatorVisitor::Visit; - PlanPrinter(const RequestRouterInterface *request_manager, std::ostream *out); + PlanPrinter(const RequestRouterInterface *request_router, std::ostream *out); bool DefaultPreVisit() override; @@ -114,7 +114,7 @@ class PlanPrinter : public virtual HierarchicalLogicalOperatorVisitor { void Branch(LogicalOperator &op, const std::string &branch_name = ""); int64_t depth_{0}; - const RequestRouterInterface *request_manager_{nullptr}; + const RequestRouterInterface *request_router_{nullptr}; std::ostream *out_{nullptr}; }; @@ -132,20 +132,20 @@ nlohmann::json ToJson(const utils::Bound &bound); nlohmann::json ToJson(const Symbol &symbol); -nlohmann::json ToJson(storage::v3::EdgeTypeId edge_type, const RequestRouterInterface &request_manager); +nlohmann::json ToJson(storage::v3::EdgeTypeId edge_type, const RequestRouterInterface &request_router); -nlohmann::json ToJson(storage::v3::LabelId label, const RequestRouterInterface &request_manager); +nlohmann::json ToJson(storage::v3::LabelId label, const RequestRouterInterface &request_router); -nlohmann::json ToJson(storage::v3::PropertyId property, const RequestRouterInterface &request_manager); +nlohmann::json ToJson(storage::v3::PropertyId property, const RequestRouterInterface &request_router); nlohmann::json ToJson(NamedExpression *nexpr); nlohmann::json ToJson(const std::vector> &properties, - const RequestRouterInterface &request_manager); + const RequestRouterInterface &request_router); -nlohmann::json ToJson(const NodeCreationInfo &node_info, const RequestRouterInterface &request_manager); +nlohmann::json ToJson(const NodeCreationInfo &node_info, const RequestRouterInterface &request_router); -nlohmann::json ToJson(const EdgeCreationInfo &edge_info, const RequestRouterInterface &request_manager); +nlohmann::json ToJson(const EdgeCreationInfo &edge_info, const RequestRouterInterface &request_router); nlohmann::json ToJson(const Aggregate::Element &elem); @@ -160,7 +160,7 @@ nlohmann::json ToJson(const std::vector &items, Args &&...args) { class PlanToJsonVisitor : public virtual HierarchicalLogicalOperatorVisitor { public: - explicit PlanToJsonVisitor(const RequestRouterInterface *request_manager) : request_manager_(request_manager) {} + explicit PlanToJsonVisitor(const RequestRouterInterface *request_router) : request_router_(request_router) {} using HierarchicalLogicalOperatorVisitor::PostVisit; using HierarchicalLogicalOperatorVisitor::PreVisit; @@ -216,7 +216,7 @@ class PlanToJsonVisitor : public virtual HierarchicalLogicalOperatorVisitor { protected: nlohmann::json output_; - const RequestRouterInterface *request_manager_; + const RequestRouterInterface *request_router_; nlohmann::json PopOutput() { nlohmann::json tmp; diff --git a/tests/simulation/request_router.cpp b/tests/simulation/request_router.cpp index ddd9351ae..8187f138b 100644 --- a/tests/simulation/request_router.cpp +++ b/tests/simulation/request_router.cpp @@ -151,10 +151,10 @@ void RunStorageRaft(Raft state{.label = "test_label"}; - auto result = io.Request(state); + auto result = request_router.Request(state); MG_ASSERT(result.size() == 2); { auto prop = result[0].GetProperty(msgs::PropertyId::FromUint(0)); @@ -163,7 +163,7 @@ void TestScanVertices(query::v2::RequestRouterInterface &io) { MG_ASSERT(prop.int_v == 444); } - result = io.Request(state); + result = request_router.Request(state); { MG_ASSERT(result.size() == 1); auto prop = result[0].GetProperty(msgs::PropertyId::FromUint(0)); @@ -171,11 +171,11 @@ void TestScanVertices(query::v2::RequestRouterInterface &io) { } } -void TestCreateVertices(query::v2::RequestRouterInterface &io) { +void TestCreateVertices(query::v2::RequestRouterInterface &request_router) { using PropVal = msgs::Value; msgs::ExecutionState state; std::vector new_vertices; - auto label_id = io.NameToLabel("test_label"); + auto label_id = request_router.NameToLabel("test_label"); msgs::NewVertex a1{.primary_key = {PropVal(int64_t(1)), PropVal(int64_t(0))}}; a1.label_ids.push_back({label_id}); msgs::NewVertex a2{.primary_key = {PropVal(int64_t(13)), PropVal(int64_t(13))}}; @@ -183,17 +183,17 @@ void TestCreateVertices(query::v2::RequestRouterInterface &io) { new_vertices.push_back(std::move(a1)); new_vertices.push_back(std::move(a2)); - auto result = io.Request(state, std::move(new_vertices)); + auto result = request_router.Request(state, std::move(new_vertices)); MG_ASSERT(result.size() == 2); } -void TestCreateExpand(query::v2::RequestRouterInterface &io) { +void TestCreateExpand(query::v2::RequestRouterInterface &request_router) { using PropVal = msgs::Value; msgs::ExecutionState state; std::vector new_expands; - const auto edge_type_id = io.NameToEdgeType("edge_type"); - const auto label = msgs::Label{io.NameToLabel("test_label")}; + const auto edge_type_id = request_router.NameToEdgeType("edge_type"); + const auto label = msgs::Label{request_router.NameToLabel("test_label")}; const msgs::VertexId vertex_id_1{label, {PropVal(int64_t(0)), PropVal(int64_t(0))}}; const msgs::VertexId vertex_id_2{label, {PropVal(int64_t(13)), PropVal(int64_t(13))}}; msgs::NewExpand expand_1{ @@ -203,7 +203,7 @@ void TestCreateExpand(query::v2::RequestRouterInterface &io) { new_expands.push_back(std::move(expand_1)); new_expands.push_back(std::move(expand_2)); - auto responses = io.Request(state, std::move(new_expands)); + auto responses = request_router.Request(state, std::move(new_expands)); MG_ASSERT(responses.size() == 2); MG_ASSERT(responses[0].success); MG_ASSERT(responses[1].success); @@ -222,7 +222,7 @@ void TestExpandOne(query::v2::RequestRouterInterface &request_router) { } template -void TestAggregate(RequestRouter &io) {} +void TestAggregate(RequestRouter &request_router) {} void DoTest() { SimulatorConfig config{ @@ -337,12 +337,12 @@ void DoTest() { // also get the current shard map CoordinatorClient coordinator_client(cli_io, c_addrs[0], c_addrs); - query::v2::RequestRouter io(std::move(coordinator_client), std::move(cli_io)); + query::v2::RequestRouter request_router(std::move(coordinator_client), std::move(cli_io)); - io.StartTransaction(); - TestScanVertices(io); - TestCreateVertices(io); - TestCreateExpand(io); + request_router.StartTransaction(); + TestScanVertices(request_router); + TestCreateVertices(request_router); + TestCreateExpand(request_router); simulator.ShutDown();