From 12411f4299ee6e6b57e0bc8f8fac040ce001ba4a Mon Sep 17 00:00:00 2001 From: folling Date: Mon, 12 Feb 2024 15:52:08 +0100 Subject: [PATCH] fixup object creation queries Signed-off-by: Folling --- src/ikarus/objects/blueprint.cpp | 4 ++-- src/ikarus/objects/entity.cpp | 6 +++--- src/ikarus/objects/properties/util.hpp | 5 +++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/ikarus/objects/blueprint.cpp b/src/ikarus/objects/blueprint.cpp index 77ffb70..a1cf9e5 100644 --- a/src/ikarus/objects/blueprint.cpp +++ b/src/ikarus/objects/blueprint.cpp @@ -25,9 +25,9 @@ IkarusBlueprint * ikarus_blueprint_create(struct IkarusProject * project, char c "failed to create blueprint: {}", IkarusErrorInfo_Database_QueryFailed, project->db->transact([name](auto * db) -> cppbase::Result { - TRY(db->execute("INSERT INTO `objects`(`type`, `name`, `information`) VALUES(?, ?, ?)", IkarusObjectType_Blueprint, name, "")); + TRY(db->execute("INSERT INTO `objects`(`type`) VALUES(?)", IkarusObjectType_Blueprint)); auto id = ikarus_id_from_data_and_type(db->last_insert_rowid(), IkarusObjectType_Blueprint); - TRY(db->execute("INSERT INTO `blueprints`(`id`) VALUES(?)", id)); + TRY(db->execute("INSERT INTO `blueprints`(`id`, `name`) VALUES(?, ?)", id, name)); return cppbase::ok(id); }) ); diff --git a/src/ikarus/objects/entity.cpp b/src/ikarus/objects/entity.cpp index bd5aa25..150b91f 100644 --- a/src/ikarus/objects/entity.cpp +++ b/src/ikarus/objects/entity.cpp @@ -13,7 +13,7 @@ IkarusEntity * ikarus_entity_create(struct IkarusProject * project, char const * name, IkarusErrorData * error_out) { IKARUS_FAIL_IF_NULL(project, nullptr); - IKARUS_FAIL_IF_NAME_INVALID_OR_DUPLICATE(name, project, static_cast(nullptr), nullptr); + IKARUS_FAIL_IF_NAME_INVALID_OR_DUPLICATE(name, project, static_cast(nullptr), nullptr); IKARUS_VTRYRV_OR_FAIL( IkarusId const id, @@ -21,9 +21,9 @@ IkarusEntity * ikarus_entity_create(struct IkarusProject * project, char const * "failed to create entity: {}", IkarusErrorInfo_Database_QueryFailed, project->db->transact([name](auto * db) -> cppbase::Result { - TRY(db->execute("INSERT INTO `objects`(`type`) VALUES(?, ?, ?)", IkarusObjectType_Entity)); + TRY(db->execute("INSERT INTO `objects`(`type`) VALUES(?)", IkarusObjectType_Entity)); auto id = ikarus_id_from_data_and_type(db->last_insert_rowid(), IkarusObjectType_Entity); - TRY(db->execute("INSERT INTO `entities`(`id`, `name`) VALUES(?)", id, name)); + TRY(db->execute("INSERT INTO `entities`(`id`, `name`) VALUES(?, ?)", id, name)); return cppbase::ok(id); }) ); diff --git a/src/ikarus/objects/properties/util.hpp b/src/ikarus/objects/properties/util.hpp index 2af0e32..c095a18 100644 --- a/src/ikarus/objects/properties/util.hpp +++ b/src/ikarus/objects/properties/util.hpp @@ -31,11 +31,12 @@ T * create_property( "failed to create property: {}", IkarusErrorInfo_Database_QueryFailed, project->db->transact([name, property_scope](auto * db) -> cppbase::Result { - TRY(db->execute("INSERT INTO `objects`(`type`, `name`, `information`) VALUES(?, ?, ?)", IkarusObjectType_Property, name, "")); + TRY(db->execute("INSERT INTO `objects`(`type`) VALUES(?)", IkarusObjectType_Property)); auto id = ikarus_id_from_data_and_type(db->last_insert_rowid(), IkarusObjectType_Property); TRY(db->execute( - "INSERT INTO `properties`(`id`, `type`, `source`) VALUES(?, ?, ?)", + "INSERT INTO `properties`(`id`, `name`, `type`, `source`) VALUES(?, ?, ?, ?)", id, + name, T::PropertyType, property_scope->get_id() ));