From e0805ec2edc3c1b6c9643cc2d3321d9b2855fd1c Mon Sep 17 00:00:00 2001 From: Teddy Middleton-Smith Date: Tue, 15 Jul 2025 15:21:04 +0100 Subject: [PATCH] Feat(SQL): Locations redesigned for parent location id stored on location table and links table removed. --- static/MySQL/11200_tbl_DOG_Location.sql | 1 + static/MySQL/11202_tbl_DOG_Location_Temp.sql | 1 + static/MySQL/31200_tri_DOG_Location.sql | 4 ++ static/MySQL/71200_p_dog_calc_location.sql | 66 ++----------------- .../MySQL/71200_p_dog_clear_calc_location.sql | 5 -- .../MySQL/71200_p_dog_get_many_location.sql | 60 ----------------- .../11204_tbl_DOG_Location_Link.sql | 0 .../11205_tbl_DOG_Location_Link_Audit.sql | 0 .../11206_tbl_DOG_Location_Link_Temp.sql | 0 .../31204_tri_DOG_Location_Link.sql | 0 10 files changed, 13 insertions(+), 124 deletions(-) rename static/MySQL/{ => deprecated}/11204_tbl_DOG_Location_Link.sql (100%) rename static/MySQL/{ => deprecated}/11205_tbl_DOG_Location_Link_Audit.sql (100%) rename static/MySQL/{ => deprecated}/11206_tbl_DOG_Location_Link_Temp.sql (100%) rename static/MySQL/{ => deprecated}/31204_tri_DOG_Location_Link.sql (100%) diff --git a/static/MySQL/11200_tbl_DOG_Location.sql b/static/MySQL/11200_tbl_DOG_Location.sql index 21e3e38..f2db331 100644 --- a/static/MySQL/11200_tbl_DOG_Location.sql +++ b/static/MySQL/11200_tbl_DOG_Location.sql @@ -10,6 +10,7 @@ WHERE CREATE TABLE IF NOT EXISTS parts.DOG_Location ( id_location INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_locaiton_parent INT , code VARCHAR(100) NOT NULL , name VARCHAR(250) NOT NULL , active BIT NOT NULL DEFAULT 1 diff --git a/static/MySQL/11202_tbl_DOG_Location_Temp.sql b/static/MySQL/11202_tbl_DOG_Location_Temp.sql index f3760bb..e3b39c5 100644 --- a/static/MySQL/11202_tbl_DOG_Location_Temp.sql +++ b/static/MySQL/11202_tbl_DOG_Location_Temp.sql @@ -11,6 +11,7 @@ WHERE CREATE TABLE IF NOT EXISTS parts.DOG_Location_Temp ( id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT , id_location INT + , id_location_parent INT , code VARCHAR(100) , name VARCHAR(250) , active BIT diff --git a/static/MySQL/31200_tri_DOG_Location.sql b/static/MySQL/31200_tri_DOG_Location.sql index 4e160e0..73f4f8f 100644 --- a/static/MySQL/31200_tri_DOG_Location.sql +++ b/static/MySQL/31200_tri_DOG_Location.sql @@ -30,6 +30,10 @@ BEGIN , value_new , id_change_set ) + -- Changed id_location_parent + SELECT NEW.id_location, 'id_location_parent', CONVERT(OLD.id_location_parent, CHAR), CONVERT(NEW.id_location_parent, CHAR), NEW.id_change_set + WHERE NOT (OLD.id_location_parent <=> NEW.code) + UNION -- Changed code SELECT NEW.id_location, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT (OLD.code <=> NEW.code) diff --git a/static/MySQL/71200_p_dog_calc_location.sql b/static/MySQL/71200_p_dog_calc_location.sql index 201b75d..94c7840 100644 --- a/static/MySQL/71200_p_dog_calc_location.sql +++ b/static/MySQL/71200_p_dog_calc_location.sql @@ -128,7 +128,7 @@ BEGIN DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Location; DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Location; DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Location; - DROP TEMPORARY TABLE IF EXISTS tmp_Location_Link_Calc_Location; + -- DROP TEMPORARY TABLE IF EXISTS tmp_Location_Link_Calc_Location; DROP TEMPORARY TABLE IF EXISTS tmp_Location_Calc_Location; CREATE TEMPORARY TABLE tmp_Location_Calc_Location ( @@ -138,6 +138,7 @@ BEGIN , csv_id_locations_parent TEXT ); + /* CREATE TEMPORARY TABLE tmp_Location_Link_Calc_Location ( id_link INT NOT NULL , id_location_parent INT @@ -145,7 +146,8 @@ BEGIN , does_meet_id_filters BIT , does_meet_non_id_filters BIT ); - + */ + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Location ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT , id_type INT NULL @@ -428,6 +430,7 @@ BEGIN END IF; -- Calculated fields + /* -- Parent Location Ids WITH Location_Parent AS ( SELECT @@ -450,33 +453,9 @@ BEGIN SELECT 'After generate calculated fields Locations'; SELECT * FROM tmp_Location_Calc_Location; END IF; + */ - -- Location Links - INSERT INTO tmp_Location_Link_Calc_Location ( - id_link - , id_location_parent - , id_location_child - - , does_meet_id_filters - , does_meet_non_id_filters - ) - SELECT - LOCATION_LINK.id_link - , LOCATION_LINK.id_location_parent - , LOCATION_LINK.id_location_child - - , NULL AS does_meet_id_filters - , NULL AS does_meet_non_id_filters - FROM parts.DOG_Location_Link LOCATION_LINK - INNER JOIN tmp_Location_Calc_Location t_LOCATIONS - ON LOCATION_LINK.id_location_parent = t_LOCATIONS.id_location - OR LOCATION_LINK.id_location_child = t_LOCATIONS.id_location - WHERE - a_get_inactive_location = 1 - OR LOCATION_LINK.active = 1 - ; - -- Permissions IF a_debug = 1 THEN SELECT @@ -600,31 +579,6 @@ BEGIN INNER JOIN tmp_Location_Calc_Location t_LOCATIONS ON LOCATIONS.id_location = t_LOCATIONS.id_location ORDER BY LOCATIONS.name ; - - INSERT INTO parts.DOG_Location_Link_Temp ( - guid - , id_link - , id_location_parent - , id_location_child - , active - - , does_meet_id_filters - , does_meet_non_id_filters - ) - SELECT - a_guid - , t_LOCATION_LINK.id_link - , LOCATION_LINK.id_location_parent - , LOCATION_LINK.id_location_child - , LOCATION_LINK.active - - , NULL AS does_meet_id_filters - , NULL AS does_meet_non_id_filters - FROM parts.DOG_Location_Link LOCATION_LINK - INNER JOIN tmp_Location_Link_Calc_Location t_LOCATION_LINK ON LOCATION_LINK.id_link = t_LOCATION_LINK.id_link - INNER JOIN parts.DOG_Location LOCATIONS ON LOCATION_LINK.id_location_child = LOCATIONS.id_location - ORDER BY LOCATIONS.name - ; COMMIT; -- Errors @@ -651,7 +605,7 @@ BEGIN DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Location; DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Location; DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Location; - DROP TEMPORARY TABLE IF EXISTS tmp_Location_Link_Calc_Location; + -- DROP TEMPORARY TABLE IF EXISTS tmp_Location_Link_Calc_Location; DROP TEMPORARY TABLE IF EXISTS tmp_Location_Calc_Location; IF a_debug = 1 THEN @@ -696,9 +650,6 @@ CALL parts.p_dog_calc_location ( SELECT * FROM parts.DOG_Location_Temp ; -SELECT * -FROM parts.DOG_Location_Link_Temp -; /* SELECT * FROM parts.DOG_Location_Temp C @@ -716,8 +667,5 @@ CALL parts.p_dog_clear_calc_location ( DELETE FROM parts.DOG_Location_Temp ; -DELETE -FROM parts.DOG_Location_Link_Temp -; */ diff --git a/static/MySQL/71200_p_dog_clear_calc_location.sql b/static/MySQL/71200_p_dog_clear_calc_location.sql index bcfb5e3..f56859c 100644 --- a/static/MySQL/71200_p_dog_clear_calc_location.sql +++ b/static/MySQL/71200_p_dog_clear_calc_location.sql @@ -22,11 +22,6 @@ BEGIN WHERE LOCATIONS_T.GUID = a_guid ; - DELETE LOCATION_LINK_T - FROM parts.DOG_Location_Link_Temp LOCATION_LINK_T - WHERE LOCATION_LINK_T.GUID = a_guid - ; - COMMIT; IF a_debug = 1 THEN diff --git a/static/MySQL/71200_p_dog_get_many_location.sql b/static/MySQL/71200_p_dog_get_many_location.sql index 326d9e9..3e19826 100644 --- a/static/MySQL/71200_p_dog_get_many_location.sql +++ b/static/MySQL/71200_p_dog_get_many_location.sql @@ -15,7 +15,6 @@ CREATE PROCEDURE parts.p_dog_get_many_location ( , IN a_require_all_non_id_search_filters_met BIT , IN a_require_any_non_id_search_filters_met BIT , IN a_output_LOCATIONS BIT - , IN a_output_LOCATION_links BIT , IN a_debug BIT ) BEGIN @@ -100,7 +99,6 @@ BEGIN SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1); */ SET a_output_LOCATIONS := IFNULL(a_output_LOCATIONS, 0); - SET a_output_LOCATION_links := IFNULL(a_output_LOCATION_links, 0); SET a_debug := IFNULL(a_debug, 0); IF a_debug = 1 THEN @@ -115,7 +113,6 @@ BEGIN , a_require_all_non_id_search_filters_met , a_require_any_non_id_search_filters_met , a_output_LOCATIONS - , a_output_LOCATION_links , a_debug ; @@ -129,7 +126,6 @@ BEGIN END IF; DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; - DROP TEMPORARY TABLE IF EXISTS tmp_Location_Link; DROP TEMPORARY TABLE IF EXISTS tmp_Location; CREATE TEMPORARY TABLE tmp_Location ( @@ -142,16 +138,6 @@ BEGIN , does_meet_non_id_filters BIT ); - CREATE TEMPORARY TABLE tmp_Location_Link ( - id_link INT NOT NULL - , id_location_parent INT - , id_location_child INT - , active BIT - - , does_meet_id_filters BIT - , does_meet_non_id_filters BIT - ); - CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT , id_type INT NULL @@ -274,8 +260,6 @@ BEGIN IF a_debug = 1 THEN SELECT COUNT(*) FROM parts.DOG_Location_Temp; SELECT * FROM parts.DOG_Location_Temp; - SELECT COUNT(*) FROM parts.DOG_Location_Link_Temp; - SELECT * FROM parts.DOG_Location_Link_Temp; END IF; INSERT INTO tmp_Location ( @@ -299,32 +283,9 @@ BEGIN WHERE LOCATION_T.GUID = v_guid ; - INSERT INTO tmp_Location_Link ( - id_link - , id_location_parent - , id_location_child - , active - - , does_meet_id_filters - , does_meet_non_id_filters - ) - SELECT - LOCATION_LINK_T.id_link - , LOCATION_LINK_T.id_location_parent - , LOCATION_LINK_T.id_location_child - , LOCATION_LINK_T.active - - , NULL AS does_meet_id_filters - , NULL AS does_meet_non_id_filters - FROM parts.DOG_Location_Link_Temp LOCATION_LINK_T - WHERE LOCATION_LINK_T.GUID = v_guid - ; - IF a_debug = 1 THEN SELECT COUNT(*) FROM tmp_Location; SELECT * FROM tmp_Location; - SELECT COUNT(*) FROM tmp_Location_Link; - SELECT * FROM tmp_Location_Link; END IF; END IF; @@ -332,10 +293,8 @@ BEGIN IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN IF a_debug = 1 THEN SELECT * FROM tmp_Location; - SELECT * FROM tmp_Location_Link; END IF; - DELETE FROM tmp_Location_Link; DELETE FROM tmp_Location; END IF; @@ -356,22 +315,6 @@ BEGIN ; END IF; - -- Location Links - IF a_output_LOCATION_links = 1 THEN - SELECT - t_LOCATION_LINK.id_link - , t_LOCATION_LINK.id_location_parent - , t_LOCATION_LINK.id_location_child - , t_LOCATION_LINK.active - - , t_LOCATION_LINK.does_meet_id_filters - , t_LOCATION_LINK.does_meet_non_id_filters - FROM tmp_Location_Link t_LOCATION_LINK - INNER JOIN tmp_Location t_LOCATIONS ON t_LOCATION_LINK.id_location_child = t_LOCATIONS.id_location - ORDER BY t_LOCATIONS.name - ; - END IF; - -- Errors SELECT t_ERROR.id_error @@ -397,7 +340,6 @@ BEGIN ); DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; - DROP TEMPORARY TABLE IF EXISTS tmp_Location_Link; DROP TEMPORARY TABLE IF EXISTS tmp_Location; IF a_debug = 1 THEN @@ -420,7 +362,6 @@ CALL parts.p_dog_get_many_location ( , 0 -- a_require_all_non_id_search_filters_met , 1 -- a_require_any_non_id_search_filters_met , 1 -- a_output_LOCATIONS - , 1 -- a_output_LOCATION_links , 1 -- a_debug ); @@ -436,7 +377,6 @@ CALL demo.p_dog_get_many_location ( , 0 -- a_require_all_non_id_search_filters_met , 1 -- a_require_any_non_id_search_filters_met , 1 -- a_output_LOCATIONS - , 1 -- a_output_LOCATION_links , 1 -- a_debug ); diff --git a/static/MySQL/11204_tbl_DOG_Location_Link.sql b/static/MySQL/deprecated/11204_tbl_DOG_Location_Link.sql similarity index 100% rename from static/MySQL/11204_tbl_DOG_Location_Link.sql rename to static/MySQL/deprecated/11204_tbl_DOG_Location_Link.sql diff --git a/static/MySQL/11205_tbl_DOG_Location_Link_Audit.sql b/static/MySQL/deprecated/11205_tbl_DOG_Location_Link_Audit.sql similarity index 100% rename from static/MySQL/11205_tbl_DOG_Location_Link_Audit.sql rename to static/MySQL/deprecated/11205_tbl_DOG_Location_Link_Audit.sql diff --git a/static/MySQL/11206_tbl_DOG_Location_Link_Temp.sql b/static/MySQL/deprecated/11206_tbl_DOG_Location_Link_Temp.sql similarity index 100% rename from static/MySQL/11206_tbl_DOG_Location_Link_Temp.sql rename to static/MySQL/deprecated/11206_tbl_DOG_Location_Link_Temp.sql diff --git a/static/MySQL/31204_tri_DOG_Location_Link.sql b/static/MySQL/deprecated/31204_tri_DOG_Location_Link.sql similarity index 100% rename from static/MySQL/31204_tri_DOG_Location_Link.sql rename to static/MySQL/deprecated/31204_tri_DOG_Location_Link.sql