From 7984c8746c935b1e0b54ca2626e9fb2950aaa5ee Mon Sep 17 00:00:00 2001 From: Timm Fitschen <timm.fitschen@ds.mpg.de> Date: Mon, 19 Nov 2018 23:06:51 +0100 Subject: [PATCH] BUG: wrong order of inserts... when a new property has another new entity as its data type. --- patches/patch20181119-2.1.0/patch.sh | 41 ++++++++++++++++++++++++++++ procedures/insertEntity.sql | 15 ++-------- 2 files changed, 44 insertions(+), 12 deletions(-) create mode 100755 patches/patch20181119-2.1.0/patch.sh diff --git a/patches/patch20181119-2.1.0/patch.sh b/patches/patch20181119-2.1.0/patch.sh new file mode 100755 index 0000000..e32a9da --- /dev/null +++ b/patches/patch20181119-2.1.0/patch.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# +# ** header v3.0 +# This file is a part of the CaosDB Project. +# +# Copyright (C) 2018 Research Group Biomedical Physics, +# Max-Planck-Institute for Dynamics and Self-Organization Göttingen +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# ** end header +# +# new insertEntity procedure +# Update mysql schema to version v2.1.0 +NEW_VERSION="v2.1.0" +OLD_VERSION="v2.0.31" + +if [ -z "$UTILSPATH" ]; then + UTILSPATH="../utils" +fi + +. $UTILSPATH/patch_header.sh $* + + +check_version $OLD_VERSION + +update_version $NEW_VERSION + +success + diff --git a/procedures/insertEntity.sql b/procedures/insertEntity.sql index 2a6b9a6..5b05d36 100644 --- a/procedures/insertEntity.sql +++ b/procedures/insertEntity.sql @@ -24,25 +24,16 @@ DROP PROCEDURE IF EXISTS db_2_0.insertEntity; delimiter // -CREATE PROCEDURE db_2_0.insertEntity(in EntityName VARCHAR(255), in EntityDesc TEXT, in EntityRole VARCHAR(255), in Datatype VARCHAR(255), in Collection VARCHAR(255), in ACL VARBINARY(65525)) +CREATE PROCEDURE db_2_0.insertEntity(in EntityName VARCHAR(255), in EntityDesc TEXT, in EntityRole VARCHAR(255), in ACL VARBINARY(65525)) BEGIN DECLARE NewEntityID INT UNSIGNED DEFAULT NULL; - DECLARE NewACLID INT UNSIGNED DEFAULT NULL; + DECLARE NewACLID INT UNSIGNED DEFAULT NULL; - call entityACL(NewACLID, ACL); + call entityACL(NewACLID, ACL); INSERT INTO entities (name, description, role, acl) VALUES (EntityName, EntityDesc, EntityRole, NewACLID); SET NewEntityID = LAST_INSERT_ID(); - - IF Datatype IS NOT NULL THEN - INSERT INTO data_type (domain_id, entity_id, property_id, datatype) SELECT 0, 0, NewEntityID, ( SELECT id from entities where name = Datatype LIMIT 1); - END IF; - - IF Collection IS NOT NULL THEN - INSERT INTO collection_type (domain_id, entity_id, property_id, collection) SELECT 0, 0, NewEntityID, Collection; - END IF; - Select NewEntityID as EntityID; END; -- GitLab