From b8df32bdf958eb33a90a232ad7260d120823abed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sascha=20K=C3=BChl?= Date: Fri, 7 Feb 2025 11:44:06 +0100 Subject: [PATCH] implemented reference method --- source/core/object/schema.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/source/core/object/schema.cpp b/source/core/object/schema.cpp index 214fe8b..12a6ef6 100644 --- a/source/core/object/schema.cpp +++ b/source/core/object/schema.cpp @@ -36,7 +36,15 @@ std::string schema::name() const { } utils::result, utils::error> schema::reference( const std::type_index& type_index ) const { - return utils::ok(std::pair{}); + const auto result = find_node(type_index); + if (!result) { + return utils::failure(result.err()); + } + if (!result->get()->basic_info().definition().has_primary_key()) { + return utils::failure(make_error( error_code::Failure, "Primary key not found" )); + } + + return utils::ok(std::make_pair(result->get()->name(), result->get()->basic_info().definition().primary_key()->name())); } utils::result, utils::error> schema::attach_node(const std::shared_ptr &node,