From 0debb5ee00e50f0c5ac798f60ab3053005257d24 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Tue, 26 Nov 2019 21:02:55 +0100
Subject: [PATCH] FIX initSubEntity (for like patterns)

---
 procedures/insertLinCon.sql        |  2 +-
 procedures/query/initSubEntity.sql | 28 ++++++++++++++++++++--------
 2 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/procedures/insertLinCon.sql b/procedures/insertLinCon.sql
index 878b70a..7c03d50 100644
--- a/procedures/insertLinCon.sql
+++ b/procedures/insertLinCon.sql
@@ -50,7 +50,7 @@ delimiter //
 
 CREATE PROCEDURE db_2_0.updateLinCon(in sig_from BIGINT, in sig_to BIGINT, in new_a DECIMAL(65,30), in new_b_dividend BIGINT, in new_b_divisor BIGINT, in new_c DECIMAL(65,30))
 BEGIN
-	UPDATE units_ling_con SET signature_to=sig_to, a=new_a, b_dividend=new_b_dividend, b_divisor=new_b_divisor, c=new_c where signature_from=sig_from;
+    UPDATE units_lin_con SET signature_to=sig_to, a=new_a, b_dividend=new_b_dividend, b_divisor=new_b_divisor, c=new_c where signature_from=sig_from;
 
 END;
 //
diff --git a/procedures/query/initSubEntity.sql b/procedures/query/initSubEntity.sql
index 0390fcc..2c3aefb 100644
--- a/procedures/query/initSubEntity.sql
+++ b/procedures/query/initSubEntity.sql
@@ -28,27 +28,39 @@ DELIMITER //
 
 CREATE PROCEDURE db_2_0.initSubEntity(in e_id INT UNSIGNED, in ename VARCHAR(255), in tableName VARCHAR(255))
 BEGIN
-	DECLARE ecount INT DEFAULT 0;
-   
-    SET @stmtStr = CONCAT('INSERT IGNORE INTO `', tableName, '` (id) SELECT id FROM entities WHERE name = ? UNION ALL SELECT entity_id FROM name_data WHERE value=? AND domain_id=0;');
+    DECLARE ecount INT DEFAULT 0;
+    DECLARE op VARCHAR(255) DEFAULT '=';
+
+    IF LOCATE("%", ename) > 0 THEN
+        SET op = "LIKE";
+    END IF;
+
+    SET @stmtStr = CONCAT('INSERT IGNORE INTO `',
+        tableName,
+        '` (id) SELECT id FROM entities WHERE name ',
+        op,
+        ' ? UNION ALL SELECT entity_id FROM name_data WHERE value ',
+        op,
+        ' ? AND domain_id=0;');
+
     PREPARE stmt FROM @stmtStr;
-	SET @ename = ename;
+    SET @ename = ename;
     EXECUTE stmt USING @ename, @ename;
     SET ecount = ROW_COUNT();
-	DEALLOCATE PREPARE stmt;
+    DEALLOCATE PREPARE stmt;
 
     IF e_id IS NOT NULL THEN
         SET @stmtStr = CONCAT('INSERT IGNORE INTO `', tableName, '` (id) VALUES (', e_id, ')');
         PREPARE stmt FROM @stmtStr;
         EXECUTE stmt;
         SET ecount = ecount + ROW_COUNT();
-		DEALLOCATE PREPARE stmt;
+        DEALLOCATE PREPARE stmt;
     END IF;
 
     IF ecount > 0 THEN
         call getChildren(tableName);
     END IF;
-    
+
 END;
-// 
+//
 DELIMITER ;
-- 
GitLab