diff --git a/src/query/frontend/ast/cypher_main_visitor.cpp b/src/query/frontend/ast/cypher_main_visitor.cpp index 6b75061fb..4bf7f36fd 100644 --- a/src/query/frontend/ast/cypher_main_visitor.cpp +++ b/src/query/frontend/ast/cypher_main_visitor.cpp @@ -1216,10 +1216,6 @@ antlrcpp::Any CypherMainVisitor::visitCallProcedure(MemgraphCypher::CallProcedur call_proc->memory_limit_ = memory_limit_info->first; call_proc->memory_scale_ = memory_limit_info->second; } - } else { - // Default to 100 MB - call_proc->memory_limit_ = storage_->Create(TypedValue(100)); - call_proc->memory_scale_ = 1024U * 1024U; } const auto &maybe_found = @@ -1240,11 +1236,13 @@ antlrcpp::Any CypherMainVisitor::visitCallProcedure(MemgraphCypher::CallProcedur throw SemanticException("There is no procedure named '{}'.", call_proc->procedure_name_); } } - call_proc->is_write_ = maybe_found->second->info.is_write; + if (maybe_found) { + call_proc->is_write_ = maybe_found->second->info.is_write; + } auto *yield_ctx = ctx->yieldProcedureResults(); if (!yield_ctx) { - if (!maybe_found->second->results.empty() && !call_proc->void_procedure_) { + if ((maybe_found && !maybe_found->second->results.empty()) && !call_proc->void_procedure_) { throw SemanticException( "CALL without YIELD may only be used on procedures which do not " "return any result fields."); diff --git a/tests/unit/cypher_main_visitor.cpp b/tests/unit/cypher_main_visitor.cpp index acbd1fe41..1d7f236a2 100644 --- a/tests/unit/cypher_main_visitor.cpp +++ b/tests/unit/cypher_main_visitor.cpp @@ -2833,18 +2833,6 @@ TEST_P(CypherMainVisitorTest, DumpDatabase) { ASSERT_TRUE(query); } -namespace { -template -void CheckCallProcedureDefaultMemoryLimit(const TAst &ast, const CallProcedure &call_proc) { - // Should be 100 MB - auto *literal = dynamic_cast(call_proc.memory_limit_); - ASSERT_TRUE(literal); - TypedValue value(literal->value_); - ASSERT_TRUE(TypedValue::BoolEqual{}(value, TypedValue(100))); - ASSERT_EQ(call_proc.memory_scale_, 1024 * 1024); -} -} // namespace - TEST_P(CypherMainVisitorTest, CallProcedureWithDotsInName) { AddProc(*mock_module_with_dots_in_name, "proc", {}, {"res"}, ProcedureType::WRITE); auto &ast_generator = *GetParam(); @@ -2868,7 +2856,6 @@ TEST_P(CypherMainVisitorTest, CallProcedureWithDotsInName) { std::vector expected_names{"res"}; ASSERT_EQ(identifier_names, expected_names); ASSERT_EQ(identifier_names, call_proc->result_fields_); - CheckCallProcedureDefaultMemoryLimit(ast_generator, *call_proc); } TEST_P(CypherMainVisitorTest, CallProcedureWithDashesInName) { @@ -2894,7 +2881,6 @@ TEST_P(CypherMainVisitorTest, CallProcedureWithDashesInName) { std::vector expected_names{"res"}; ASSERT_EQ(identifier_names, expected_names); ASSERT_EQ(identifier_names, call_proc->result_fields_); - CheckCallProcedureDefaultMemoryLimit(ast_generator, *call_proc); } TEST_P(CypherMainVisitorTest, CallProcedureWithYieldSomeFields) { @@ -2926,7 +2912,6 @@ TEST_P(CypherMainVisitorTest, CallProcedureWithYieldSomeFields) { std::vector expected_names{"fst", "field-with-dashes", "last_field"}; ASSERT_EQ(identifier_names, expected_names); ASSERT_EQ(identifier_names, call_proc->result_fields_); - CheckCallProcedureDefaultMemoryLimit(ast_generator, *call_proc); }; check_proc(ProcedureType::READ); check_proc(ProcedureType::WRITE); @@ -2959,7 +2944,6 @@ TEST_P(CypherMainVisitorTest, CallProcedureWithYieldAliasedFields) { ASSERT_EQ(identifier_names, aliased_names); std::vector field_names{"fst", "snd", "thrd"}; ASSERT_EQ(call_proc->result_fields_, field_names); - CheckCallProcedureDefaultMemoryLimit(ast_generator, *call_proc); } TEST_P(CypherMainVisitorTest, CallProcedureWithArguments) { @@ -2986,7 +2970,6 @@ TEST_P(CypherMainVisitorTest, CallProcedureWithArguments) { std::vector expected_names{"res"}; ASSERT_EQ(identifier_names, expected_names); ASSERT_EQ(identifier_names, call_proc->result_fields_); - CheckCallProcedureDefaultMemoryLimit(ast_generator, *call_proc); } TEST_P(CypherMainVisitorTest, CallProcedureYieldAsterisk) { @@ -3008,7 +2991,6 @@ TEST_P(CypherMainVisitorTest, CallProcedureYieldAsterisk) { } ASSERT_THAT(identifier_names, UnorderedElementsAre("name", "signature", "is_write", "path", "is_editable")); ASSERT_EQ(identifier_names, call_proc->result_fields_); - CheckCallProcedureDefaultMemoryLimit(ast_generator, *call_proc); } TEST_P(CypherMainVisitorTest, CallProcedureYieldAsteriskReturnAsterisk) { @@ -3033,7 +3015,6 @@ TEST_P(CypherMainVisitorTest, CallProcedureYieldAsteriskReturnAsterisk) { } ASSERT_THAT(identifier_names, UnorderedElementsAre("name", "signature", "is_write", "path", "is_editable")); ASSERT_EQ(identifier_names, call_proc->result_fields_); - CheckCallProcedureDefaultMemoryLimit(ast_generator, *call_proc); } TEST_P(CypherMainVisitorTest, CallProcedureWithoutYield) { @@ -3049,7 +3030,6 @@ TEST_P(CypherMainVisitorTest, CallProcedureWithoutYield) { ASSERT_TRUE(call_proc->arguments_.empty()); ASSERT_TRUE(call_proc->result_fields_.empty()); ASSERT_TRUE(call_proc->result_identifiers_.empty()); - CheckCallProcedureDefaultMemoryLimit(ast_generator, *call_proc); } TEST_P(CypherMainVisitorTest, CallProcedureWithMemoryLimitWithoutYield) { @@ -3183,7 +3163,6 @@ void CheckParsedCallProcedure(const CypherQuery &query, Base &ast_generator, EXPECT_EQ(identifier_names, args_as_str); EXPECT_EQ(identifier_names, call_proc->result_fields_); ASSERT_EQ(call_proc->is_write_, type == ProcedureType::WRITE); - CheckCallProcedureDefaultMemoryLimit(ast_generator, *call_proc); }; } // namespace @@ -3577,7 +3556,6 @@ TEST_P(CypherMainVisitorTest, MemoryLimit) { auto *single_query = query->single_query_; ASSERT_EQ(single_query->clauses_.size(), 2U); auto *call_proc = dynamic_cast(single_query->clauses_[0]); - CheckCallProcedureDefaultMemoryLimit(ast_generator, *call_proc); } { @@ -3638,7 +3616,6 @@ TEST_P(CypherMainVisitorTest, MemoryLimit) { auto *single_query = query->single_query_; ASSERT_EQ(single_query->clauses_.size(), 1U); auto *call_proc = dynamic_cast(single_query->clauses_[0]); - CheckCallProcedureDefaultMemoryLimit(ast_generator, *call_proc); } }