Feat(SQL): Locations redesigned for parent location id stored on location table and links table removed.
This commit is contained in:
@@ -10,6 +10,7 @@ WHERE
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS parts.DOG_Location (
|
CREATE TABLE IF NOT EXISTS parts.DOG_Location (
|
||||||
id_location INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
id_location INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
||||||
|
, id_locaiton_parent INT
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, name VARCHAR(250) NOT NULL
|
, name VARCHAR(250) NOT NULL
|
||||||
, active BIT NOT NULL DEFAULT 1
|
, active BIT NOT NULL DEFAULT 1
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ WHERE
|
|||||||
CREATE TABLE IF NOT EXISTS parts.DOG_Location_Temp (
|
CREATE TABLE IF NOT EXISTS parts.DOG_Location_Temp (
|
||||||
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_location INT
|
, id_location INT
|
||||||
|
, id_location_parent INT
|
||||||
, code VARCHAR(100)
|
, code VARCHAR(100)
|
||||||
, name VARCHAR(250)
|
, name VARCHAR(250)
|
||||||
, active BIT
|
, active BIT
|
||||||
|
|||||||
@@ -30,6 +30,10 @@ BEGIN
|
|||||||
, value_new
|
, value_new
|
||||||
, id_change_set
|
, 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
|
-- Changed code
|
||||||
SELECT NEW.id_location, 'code', OLD.code, NEW.code, NEW.id_change_set
|
SELECT NEW.id_location, 'code', OLD.code, NEW.code, NEW.id_change_set
|
||||||
WHERE NOT (OLD.code <=> NEW.code)
|
WHERE NOT (OLD.code <=> NEW.code)
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ BEGIN
|
|||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Location;
|
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_Split_Id_Calc_Location;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_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;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Location_Calc_Location;
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Location_Calc_Location (
|
CREATE TEMPORARY TABLE tmp_Location_Calc_Location (
|
||||||
@@ -138,6 +138,7 @@ BEGIN
|
|||||||
, csv_id_locations_parent TEXT
|
, csv_id_locations_parent TEXT
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
CREATE TEMPORARY TABLE tmp_Location_Link_Calc_Location (
|
CREATE TEMPORARY TABLE tmp_Location_Link_Calc_Location (
|
||||||
id_link INT NOT NULL
|
id_link INT NOT NULL
|
||||||
, id_location_parent INT
|
, id_location_parent INT
|
||||||
@@ -145,7 +146,8 @@ BEGIN
|
|||||||
, does_meet_id_filters BIT
|
, does_meet_id_filters BIT
|
||||||
, does_meet_non_id_filters BIT
|
, does_meet_non_id_filters BIT
|
||||||
);
|
);
|
||||||
|
*/
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Location (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Location (
|
||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
@@ -428,6 +430,7 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Calculated fields
|
-- Calculated fields
|
||||||
|
/*
|
||||||
-- Parent Location Ids
|
-- Parent Location Ids
|
||||||
WITH Location_Parent AS (
|
WITH Location_Parent AS (
|
||||||
SELECT
|
SELECT
|
||||||
@@ -450,33 +453,9 @@ BEGIN
|
|||||||
SELECT 'After generate calculated fields Locations';
|
SELECT 'After generate calculated fields Locations';
|
||||||
SELECT * FROM tmp_Location_Calc_Location;
|
SELECT * FROM tmp_Location_Calc_Location;
|
||||||
END IF;
|
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
|
-- Permissions
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT
|
SELECT
|
||||||
@@ -600,31 +579,6 @@ BEGIN
|
|||||||
INNER JOIN tmp_Location_Calc_Location t_LOCATIONS ON LOCATIONS.id_location = t_LOCATIONS.id_location
|
INNER JOIN tmp_Location_Calc_Location t_LOCATIONS ON LOCATIONS.id_location = t_LOCATIONS.id_location
|
||||||
ORDER BY LOCATIONS.name
|
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;
|
COMMIT;
|
||||||
|
|
||||||
-- Errors
|
-- Errors
|
||||||
@@ -651,7 +605,7 @@ BEGIN
|
|||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Location;
|
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_Split_Id_Calc_Location;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_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;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Location_Calc_Location;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
@@ -696,9 +650,6 @@ CALL parts.p_dog_calc_location (
|
|||||||
SELECT *
|
SELECT *
|
||||||
FROM parts.DOG_Location_Temp
|
FROM parts.DOG_Location_Temp
|
||||||
;
|
;
|
||||||
SELECT *
|
|
||||||
FROM parts.DOG_Location_Link_Temp
|
|
||||||
;
|
|
||||||
/*
|
/*
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM parts.DOG_Location_Temp C
|
FROM parts.DOG_Location_Temp C
|
||||||
@@ -716,8 +667,5 @@ CALL parts.p_dog_clear_calc_location (
|
|||||||
DELETE
|
DELETE
|
||||||
FROM parts.DOG_Location_Temp
|
FROM parts.DOG_Location_Temp
|
||||||
;
|
;
|
||||||
DELETE
|
|
||||||
FROM parts.DOG_Location_Link_Temp
|
|
||||||
;
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -22,11 +22,6 @@ BEGIN
|
|||||||
WHERE LOCATIONS_T.GUID = a_guid
|
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;
|
COMMIT;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
|
|||||||
@@ -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_all_non_id_search_filters_met BIT
|
||||||
, IN a_require_any_non_id_search_filters_met BIT
|
, IN a_require_any_non_id_search_filters_met BIT
|
||||||
, IN a_output_LOCATIONS BIT
|
, IN a_output_LOCATIONS BIT
|
||||||
, IN a_output_LOCATION_links BIT
|
|
||||||
, IN a_debug BIT
|
, IN a_debug BIT
|
||||||
)
|
)
|
||||||
BEGIN
|
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_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_LOCATIONS := IFNULL(a_output_LOCATIONS, 0);
|
||||||
SET a_output_LOCATION_links := IFNULL(a_output_LOCATION_links, 0);
|
|
||||||
SET a_debug := IFNULL(a_debug, 0);
|
SET a_debug := IFNULL(a_debug, 0);
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
@@ -115,7 +113,6 @@ BEGIN
|
|||||||
, a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met
|
||||||
, a_require_any_non_id_search_filters_met
|
, a_require_any_non_id_search_filters_met
|
||||||
, a_output_LOCATIONS
|
, a_output_LOCATIONS
|
||||||
, a_output_LOCATION_links
|
|
||||||
, a_debug
|
, a_debug
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -129,7 +126,6 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Location_Link;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Location;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Location;
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Location (
|
CREATE TEMPORARY TABLE tmp_Location (
|
||||||
@@ -142,16 +138,6 @@ BEGIN
|
|||||||
, does_meet_non_id_filters BIT
|
, 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 (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
@@ -274,8 +260,6 @@ BEGIN
|
|||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT COUNT(*) FROM parts.DOG_Location_Temp;
|
SELECT COUNT(*) FROM parts.DOG_Location_Temp;
|
||||||
SELECT * 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;
|
END IF;
|
||||||
|
|
||||||
INSERT INTO tmp_Location (
|
INSERT INTO tmp_Location (
|
||||||
@@ -299,32 +283,9 @@ BEGIN
|
|||||||
WHERE LOCATION_T.GUID = v_guid
|
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
|
IF a_debug = 1 THEN
|
||||||
SELECT COUNT(*) FROM tmp_Location;
|
SELECT COUNT(*) FROM tmp_Location;
|
||||||
SELECT * FROM tmp_Location;
|
SELECT * FROM tmp_Location;
|
||||||
SELECT COUNT(*) FROM tmp_Location_Link;
|
|
||||||
SELECT * FROM tmp_Location_Link;
|
|
||||||
END IF;
|
END IF;
|
||||||
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 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
|
IF a_debug = 1 THEN
|
||||||
SELECT * FROM tmp_Location;
|
SELECT * FROM tmp_Location;
|
||||||
SELECT * FROM tmp_Location_Link;
|
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
DELETE FROM tmp_Location_Link;
|
|
||||||
DELETE FROM tmp_Location;
|
DELETE FROM tmp_Location;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
@@ -356,22 +315,6 @@ BEGIN
|
|||||||
;
|
;
|
||||||
END IF;
|
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
|
-- Errors
|
||||||
SELECT
|
SELECT
|
||||||
t_ERROR.id_error
|
t_ERROR.id_error
|
||||||
@@ -397,7 +340,6 @@ BEGIN
|
|||||||
);
|
);
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Location_Link;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Location;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Location;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
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
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
, 1 -- a_require_any_non_id_search_filters_met
|
, 1 -- a_require_any_non_id_search_filters_met
|
||||||
, 1 -- a_output_LOCATIONS
|
, 1 -- a_output_LOCATIONS
|
||||||
, 1 -- a_output_LOCATION_links
|
|
||||||
, 1 -- a_debug
|
, 1 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -436,7 +377,6 @@ CALL demo.p_dog_get_many_location (
|
|||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
, 1 -- a_require_any_non_id_search_filters_met
|
, 1 -- a_require_any_non_id_search_filters_met
|
||||||
, 1 -- a_output_LOCATIONS
|
, 1 -- a_output_LOCATIONS
|
||||||
, 1 -- a_output_LOCATION_links
|
|
||||||
, 1 -- a_debug
|
, 1 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user