Feat(SQL, UI): Redesign database with much more detailed command response quality analysis and created successfully loading Dog Command Links page

This commit is contained in:
2025-06-28 20:48:37 +01:00
parent ab50a81a0e
commit caeb13429a
245 changed files with 7244 additions and 2035 deletions

View File

@@ -0,0 +1,759 @@
USE demo;
DROP PROCEDURE IF EXISTS demo.p_DOG_get_many_dog;
DELIMITER //
CREATE PROCEDURE demo.p_DOG_get_many_dog (
IN a_id_user INT
, IN a_get_all_dog BIT
, IN a_get_inactive_dog BIT
, IN a_ids_dog TEXT
, IN a_names_dog TEXT
, IN a_debug BIT
)
BEGIN
DECLARE v_code_type_error_bad_data VARCHAR(100);
DECLARE v_code_type_error_no_permission VARCHAR(100);
DECLARE v_id_type_error_bad_data INT;
DECLARE v_id_type_error_no_permission INT;
DECLARE v_has_filter_dog_id BIT;
DECLARE v_has_filter_dog_name BIT;
DECLARE v_guid BINARY(36);
DECLARE v_id_permission_dog_view INT;
DECLARE v_id_minimum INT;
DECLARE v_time_start TIMESTAMP(6);
DECLARE v_can_view BIT;
DECLARE exit handler for SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1
@sqlstate = RETURNED_SQLSTATE
, @errno = MYSQL_ERRNO
, @text = MESSAGE_TEXT
;
ROLLBACK;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, code VARCHAR(100) NOT NULL
, msg VARCHAR(4000) NOT NULL
);
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
MET.id_type
, @errno
, @text
FROM demo.CORE_Msg_Error_Type MET
WHERE MET.code = 'MYSQL_ERROR'
;
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error t_ERROR
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
DROP TABLE IF EXISTS tmp_Msg_Error;
END;
SET v_time_start := CURRENT_TIMESTAMP(6);
SET v_guid := UUID();
SET v_code_type_error_bad_data := 'BAD_DATA';
SET v_code_type_error_no_permission := 'NO_PERMISSION';
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
SET a_id_user := IFNULL(a_id_user, 0);
SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
SET a_names_dog := TRIM(IFNULL(a_names_dog, ''));
SET a_debug := IFNULL(a_debug, 0);
IF a_debug = 1 THEN
SELECT
a_id_user
, a_get_all_dog
, a_get_inactive_dog
, a_ids_dog
, a_names_dog
, a_debug
;
SELECT
v_id_type_error_bad_data
, v_id_type_error_no_permission
, v_guid
, v_id_permission_dog_view
, v_time_start
;
END IF;
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
CREATE TEMPORARY TABLE tmp_Dog (
id_dog INT NOT NULL
, name VARCHAR(250)
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, code VARCHAR(100) NOT NULL
, msg VARCHAR(4000) NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
);
DELETE FROM tmp_Split_Id;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
);
DELETE FROM tmp_Split_Name;
CALL demo.p_core_validate_guid ( v_guid );
SET v_has_filter_dog_id = CASE WHEN a_ids_dog = '' THEN 0 ELSE 1 END;
SET v_has_filter_dog_name = CASE WHEN a_names_dog = '' THEN 0 ELSE 1 END;
-- Dogs
IF v_has_filter_dog_id = 1 THEN
CALL demo.p_split(v_guid, a_ids_dog, ',', a_debug);
INSERT INTO tmp_Split_Id (
substring
, as_int
)
SELECT
SPLIT_T.substring
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
FROM demo.CORE_Split_Temp SPLIT_T
WHERE
SPLIT_T.GUID = v_guid
AND IFNULL(SPLIT_T.substring, '') <> ''
;
CALL demo.p_clear_split_temp( v_guid );
END IF;
IF v_has_filter_dog_name = 1 THEN
CALL demo.p_split(v_guid, a_names_dog, ',', a_debug);
INSERT INTO tmp_Split_Name (
substring
, as_int
)
SELECT
SPLIT_T.substring
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
FROM demo.CORE_Split_Temp SPLIT_T
WHERE
SPLIT_T.GUID = v_guid
AND IFNULL(SPLIT_T.substring, '') <> ''
;
CALL demo.p_clear_split_temp( v_guid );
END IF;
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.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_Split_Id t_SPLIT_ID
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
WHERE
ISNULL(t_SPLIT_ID.as_int)
OR ISNULL(DOG.id_dog)
OR (
DOG.active = 0
AND a_get_inactive_dog = 0
)
) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
FROM tmp_Split_Id t_SPLIT_ID
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
WHERE
ISNULL(t_SPLIT_ID.as_int)
OR ISNULL(DOG.id_dog)
OR (
DOG.active = 0
AND a_get_inactive_dog = 0
)
;
/* Don't error on names not found
ELSEIF EXISTS (
SELECT *
FROM tmp_Split t_SPLIT
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
WHERE
ISNULL(t_SPLIT.as_int)
OR ISNULL(DOG.id_dog)
OR (
DOG.active = 0
AND a_get_inactive_dog = 0
)
) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
FROM tmp_Split t_SPLIT
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
WHERE
ISNULL(t_SPLIT.as_int)
OR ISNULL(DOG.id_dog)
OR (
DOG.active = 0
AND a_get_inactive_dog = 0
)
;
*/
ELSE
INSERT INTO tmp_Dog (
id_dog
, name
)
SELECT
DOG.id_dog
, DOG.name
FROM demo.DOG_Dog DOG
LEFT JOIN tmp_Split_Id t_SPLIT_ID ON DOG.id_dog = t_SPLIT_ID.as_int
LEFT JOIN tmp_Split_Name t_SPLIT_NAME ON DOG.name = t_SPLIT_NAME.substring
WHERE
(
a_get_all_dog = 1
OR (
v_has_filter_dog_id = 1
OR v_has_filter_dog_name = 1
)
)
AND (
a_get_inactive_dog = 1
OR DOG.active = 1
)
;
END IF;
END IF;
DELETE FROM tmp_Split_Id;
DELETE FROM tmp_Split_Name;
-- Permissions
IF a_debug = 1 THEN
SELECT
v_guid
, a_id_user
, FALSE -- a_get_inactive_user
, v_id_permission_dog_view
, 0 -- a_debug
;
END IF;
CALL demo.p_DOG_calc_user(
v_guid
, a_id_user
, FALSE -- a_get_inactive_user
, v_id_permission_dog_view
, 0 -- a_debug
);
SELECT
IFNULL(CALC_USER_T.has_access, 0)
INTO
v_can_view
FROM demo.DOG_Calc_User_Temp CALC_USER_T
WHERE CALC_USER_T.GUID = v_guid
LIMIT 1
;
IF a_debug = 1 THEN
SELECT v_can_view;
END IF;
IF (v_can_view = 0) THEN
DELETE t_ME
FROM tmp_Msg_Error t_ME
WHERE t_ME.id_type <> v_id_type_error_no_permission
;
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
VALUES (
v_id_type_error_no_permission
, v_code_type_error_no_permission
, 'You do not have permission to view Commands.'
)
;
END IF;
CALL demo.p_DOG_clear_calc_user(
v_guid
, 0 -- a_debug
);
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.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_Dog;
END IF;
DELETE FROM tmp_Dog;
END IF;
-- Outputs
-- Commands
SELECT
t_DOG.id_dog
, t_DOG.name
, DOG.appearance
, DOG.mass_kg
, DOG.notes
, DOG.active
FROM demo.DOG_Dog DOG
INNER JOIN tmp_Dog t_DOG ON DOG.id_dog = t_DOG.id_dog
;
-- Errors
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error t_ERROR
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
IF a_debug = 1 AND v_can_view = 1 THEN
SELECT * FROM tmp_Dog;
END IF;
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
IF a_debug = 1 THEN
CALL demo.p_core_debug_timing_reporting ( v_time_start );
END IF;
END //
DELIMITER ;
USE demo;
DROP PROCEDURE IF EXISTS demo.p_DOG_get_many_command;
DELIMITER //
CREATE PROCEDURE demo.p_DOG_get_many_command (
IN a_id_user INT
, IN a_get_all_command BIT
, IN a_get_inactive_command BIT
, IN a_ids_command TEXT
, IN a_names_command TEXT
, IN a_debug BIT
)
BEGIN
DECLARE v_code_type_error_bad_data VARCHAR(100);
DECLARE v_code_type_error_no_permission VARCHAR(100);
DECLARE v_id_type_error_bad_data INT;
DECLARE v_id_type_error_no_permission INT;
DECLARE v_has_filter_command_id BIT;
DECLARE v_has_filter_command_name BIT;
DECLARE v_guid BINARY(36);
DECLARE v_id_permission_command_view INT;
DECLARE v_id_minimum INT;
DECLARE v_time_start TIMESTAMP(6);
DECLARE v_can_view BIT;
DECLARE exit handler for SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1
@sqlstate = RETURNED_SQLSTATE
, @errno = MYSQL_ERRNO
, @text = MESSAGE_TEXT
;
ROLLBACK;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, code VARCHAR(100) NOT NULL
, msg VARCHAR(4000) NOT NULL
);
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
MET.id_type
, @errno
, @text
FROM demo.CORE_Msg_Error_Type MET
WHERE MET.code = 'MYSQL_ERROR'
;
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error t_ERROR
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
DROP TABLE IF EXISTS tmp_Msg_Error;
END;
SET v_time_start := CURRENT_TIMESTAMP(6);
SET v_guid := UUID();
SET v_code_type_error_bad_data := 'BAD_DATA';
SET v_code_type_error_no_permission := 'NO_PERMISSION';
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
SET a_id_user := IFNULL(a_id_user, 0);
SET a_get_all_command := IFNULL(a_get_all_command, 0);
SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
SET a_names_command := TRIM(IFNULL(a_names_command, ''));
SET a_debug := IFNULL(a_debug, 0);
IF a_debug = 1 THEN
SELECT
a_id_user
, a_get_all_command
, a_get_inactive_command
, a_ids_command
, a_names_command
, a_debug
;
SELECT
v_id_type_error_bad_data
, v_id_type_error_no_permission
, v_guid
, v_id_permission_command_view
, v_time_start
;
END IF;
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
CREATE TEMPORARY TABLE tmp_Command (
id_command INT NOT NULL
, name VARCHAR(250)
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, code VARCHAR(100) NOT NULL
, msg VARCHAR(4000) NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
);
DELETE FROM tmp_Split_Id;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
);
DELETE FROM tmp_Split_Name;
CALL demo.p_core_validate_guid ( v_guid );
SET v_has_filter_command_id = CASE WHEN a_ids_command = '' THEN 0 ELSE 1 END;
SET v_has_filter_command_name = CASE WHEN a_names_command = '' THEN 0 ELSE 1 END;
-- Commands
IF v_has_filter_command_id = 1 THEN
CALL demo.p_split(v_guid, a_ids_command, ',', a_debug);
INSERT INTO tmp_Split_Id (
substring
, as_int
)
SELECT
SPLIT_T.substring
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
FROM demo.CORE_Split_Temp SPLIT_T
WHERE
SPLIT_T.GUID = v_guid
AND IFNULL(SPLIT_T.substring, '') <> ''
;
CALL demo.p_clear_split_temp( v_guid );
END IF;
IF v_has_filter_command_name = 1 THEN
CALL demo.p_split(v_guid, a_names_command, ',', a_debug);
INSERT INTO tmp_Split_Name (
substring
, as_int
)
SELECT
SPLIT_T.substring
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
FROM demo.CORE_Split_Temp SPLIT_T
WHERE
SPLIT_T.GUID = v_guid
AND IFNULL(SPLIT_T.substring, '') <> ''
;
CALL demo.p_clear_split_temp( v_guid );
END IF;
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.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_Split_Id t_SPLIT_ID
LEFT JOIN demo.DOG_Command COMMAND ON t_SPLIT_ID.as_int = COMMAND.id_command
WHERE
ISNULL(t_SPLIT_ID.as_int)
OR ISNULL(COMMAND.id_command)
OR (
COMMAND.active = 0
AND a_get_inactive_command = 0
)
) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('Invalid or inactive Command IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
FROM tmp_Split_Id t_SPLIT_ID
LEFT JOIN demo.DOG_Command COMMAND ON t_SPLIT_ID.as_int = COMMAND.id_command
WHERE
ISNULL(t_SPLIT_ID.as_int)
OR ISNULL(COMMAND.id_command)
OR (
COMMAND.active = 0
AND a_get_inactive_command = 0
)
;
/* Don't error on codes or names not found
ELSEIF EXISTS (
SELECT *
*/
ELSE
INSERT INTO tmp_Command (
id_command
, name
)
SELECT
COMMAND.id_command
, COMMAND.name
FROM demo.DOG_Command COMMAND
LEFT JOIN tmp_Split_Id t_SPLIT_ID ON COMMAND.id_command = t_SPLIT_ID.as_int
LEFT JOIN tmp_Split_Name t_SPLIT_NAME ON COMMAND.name = t_SPLIT_NAME.substring
WHERE
(
a_get_all_command = 1
OR (
v_has_filter_command_id = 1
OR v_has_filter_command_name = 1
)
)
AND (
a_get_inactive_command = 1
OR COMMAND.active = 1
)
;
END IF;
END IF;
DELETE FROM tmp_Split_Id;
DELETE FROM tmp_Split_Name;
-- Permissions
IF a_debug = 1 THEN
SELECT
v_guid
, a_id_user
, FALSE -- a_get_inactive_user
, v_id_permission_command_view
, 0 -- a_debug
;
END IF;
CALL demo.p_DOG_calc_user(
v_guid
, a_id_user
, FALSE -- a_get_inactive_user
, v_id_permission_command_view
, 0 -- a_debug
);
SELECT
IFNULL(CALC_USER_T.has_access, 0)
INTO
v_can_view
FROM demo.DOG_Calc_User_Temp CALC_USER_T
WHERE CALC_USER_T.GUID = v_guid
LIMIT 1
;
IF a_debug = 1 THEN
SELECT v_can_view;
END IF;
IF (v_can_view = 0) THEN
DELETE t_ME
FROM tmp_Msg_Error t_ME
WHERE t_ME.id_type <> v_id_type_error_no_permission
;
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
VALUES (
v_id_type_error_no_permission
, v_code_type_error_no_permission
, 'You do not have permission to view Commands.'
)
;
END IF;
CALL demo.p_DOG_clear_calc_user(
v_guid
, 0 -- a_debug
);
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.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_Command;
END IF;
DELETE FROM tmp_Command;
END IF;
-- Outputs
-- Commands
SELECT
t_COMMAND.id_command
, COMMAND.id_command_category
, t_COMMAND.name
, COMMAND.hand_signal_default_description
, COMMAND.can_have_button
, COMMAND.notes
, COMMAND.active
FROM demo.DOG_Command COMMAND
INNER JOIN tmp_Command t_COMMAND ON COMMAND.id_command = t_COMMAND.id_command
;
-- Errors
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error t_ERROR
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
IF a_debug = 1 AND v_can_view = 1 THEN
SELECT * FROM tmp_Command;
END IF;
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
IF a_debug = 1 THEN
CALL demo.p_core_debug_timing_reporting ( v_time_start );
END IF;
END //
DELIMITER ;
CALL demo.p_DOG_get_many_dog (
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
, 1 -- a_get_all_dog
, 0 -- a_get_inactive_dog
, '' -- a_ids_dog
, '' -- a_names_dog
, 1 -- a_debug
);
CALL demo.p_DOG_get_many_command (
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
, 1 -- a_get_all_command
, 0 -- a_get_inactive_command
, '' -- a_ids_command
, '' -- a_names_command
, 1 -- a_debug
);

View File

@@ -14,13 +14,49 @@ DROP TABLE IF EXISTS parts.tmp_DOG_User_Role_Link;
-- Permanent Tables
DROP TABLE IF EXISTS parts.DOG_Dog_Drive_Link_Temp;
DROP TABLE IF EXISTS parts.DOG_Dog_Drive_Link_Audit;
DROP TABLE IF EXISTS parts.DOG_Dog_Drive_Link;
DROP TABLE IF EXISTS parts.DOG_Assessment_Response_Temp;
DROP TABLE IF EXISTS parts.DOG_Assessment_Response_Audit;
DROP TABLE IF EXISTS parts.DOG_Assessment_Response;
DROP TABLE IF EXISTS parts.DOG_Drive_Temp;
DROP TABLE IF EXISTS parts.DOG_Drive_Audit;
DROP TABLE IF EXISTS parts.DOG_Drive;
DROP TABLE IF EXISTS parts.DOG_Obedience_Level_Temp;
DROP TABLE IF EXISTS parts.DOG_Obedience_Level_Audit;
DROP TABLE IF EXISTS parts.DOG_Obedience_Level;
DROP TABLE IF EXISTS parts.DOG_Response_Quality_Metric_Temp;
DROP TABLE IF EXISTS parts.DOG_Response_Quality_Metric_Audit;
DROP TABLE IF EXISTS parts.DOG_Response_Quality_Metric;
DROP TABLE IF EXISTS parts.DOG_Assessment_Command_Modality_Link_Temp;
DROP TABLE IF EXISTS parts.DOG_Assessment_Command_Modality_Link_Audit;
DROP TABLE IF EXISTS parts.DOG_Assessment_Command_Modality_Link;
DROP TABLE IF EXISTS parts.DOG_Bribe_Temp;
DROP TABLE IF EXISTS parts.DOG_Bribe_Audit;
DROP TABLE IF EXISTS parts.DOG_Bribe;
DROP TABLE IF EXISTS parts.DOG_Distraction_Temp;
DROP TABLE IF EXISTS parts.DOG_Distraction_Audit;
DROP TABLE IF EXISTS parts.DOG_Distraction;
DROP TABLE IF EXISTS parts.DOG_Distraction_Intensity_Level_Temp;
DROP TABLE IF EXISTS parts.DOG_Distraction_Intensity_Level_Audit;
DROP TABLE IF EXISTS parts.DOG_Distraction_Intensity_Level;
DROP TABLE IF EXISTS parts.DOG_Distraction_Type_Temp;
DROP TABLE IF EXISTS parts.DOG_Distraction_Type_Audit;
DROP TABLE IF EXISTS parts.DOG_Distraction_Type;
DROP TABLE IF EXISTS parts.DOG_Assessment_Temp;
DROP TABLE IF EXISTS parts.DOG_Assessment_Audit;
DROP TABLE IF EXISTS parts.DOG_Assessment;
DROP TABLE IF EXISTS parts.DOG_Lighting_Level_Temp;
DROP TABLE IF EXISTS parts.DOG_Lighting_Level_Audit;
DROP TABLE IF EXISTS parts.DOG_Lighting_Level;
DROP TABLE IF EXISTS parts.DOG_Weather_Temp;
DROP TABLE IF EXISTS parts.DOG_Weather_Audit;
DROP TABLE IF EXISTS parts.DOG_Weather;
DROP TABLE IF EXISTS parts.DOG_Command_Button_Link_Temp;
DROP TABLE IF EXISTS parts.DOG_Command_Button_Link_Audit;
@@ -34,14 +70,14 @@ DROP TABLE IF EXISTS parts.DOG_Image_Temp;
DROP TABLE IF EXISTS parts.DOG_Image_Audit;
DROP TABLE IF EXISTS parts.DOG_Image;
DROP TABLE IF EXISTS parts.DOG_Button_Shape_Temp;
DROP TABLE IF EXISTS parts.DOG_Button_Shape_Audit;
DROP TABLE IF EXISTS parts.DOG_Button_Shape;
DROP TABLE IF EXISTS parts.DOG_Colour_Temp;
DROP TABLE IF EXISTS parts.DOG_Colour_Audit;
DROP TABLE IF EXISTS parts.DOG_Colour;
DROP TABLE IF EXISTS parts.DOG_Button_Shape_Temp;
DROP TABLE IF EXISTS parts.DOG_Button_Shape_Audit;
DROP TABLE IF EXISTS parts.DOG_Button_Shape;
DROP TABLE IF EXISTS parts.DOG_Location_Link_Temp;
DROP TABLE IF EXISTS parts.DOG_Location_Link_Audit;
DROP TABLE IF EXISTS parts.DOG_Location_Link;
@@ -50,9 +86,15 @@ DROP TABLE IF EXISTS parts.DOG_Location_Temp;
DROP TABLE IF EXISTS parts.DOG_Location_Audit;
DROP TABLE IF EXISTS parts.DOG_Location;
DROP TABLE IF EXISTS parts.DOG_Command_Modality_Temp;
DROP TABLE IF EXISTS parts.DOG_Command_Modality_Audit;
DROP TABLE IF EXISTS parts.DOG_Command_Modality;
/* Start of remove section */
DROP TABLE IF EXISTS parts.DOG_Personal_Best_Temp;
DROP TABLE IF EXISTS parts.DOG_Personal_Best_Audit;
DROP TABLE IF EXISTS parts.DOG_Personal_Best;
/* End of remove section */
DROP TABLE IF EXISTS parts.DOG_Dog_Command_Link_Temp;
DROP TABLE IF EXISTS parts.DOG_Dog_Command_Link_Audit;
@@ -66,10 +108,7 @@ DROP TABLE IF EXISTS parts.DOG_Command_Category_Temp;
DROP TABLE IF EXISTS parts.DOG_Command_Category_Audit;
DROP TABLE IF EXISTS parts.DOG_Command_Category;
DROP TABLE IF EXISTS parts.DOG_Obedience_Level_Temp;
DROP TABLE IF EXISTS parts.DOG_Obedience_Level_Audit;
DROP TABLE IF EXISTS parts.DOG_Obedience_Level;
/* Start of remove section */
DROP TABLE IF EXISTS parts.DOG_Understanding_Level_Temp;
DROP TABLE IF EXISTS parts.DOG_Understanding_Level_Audit;
DROP TABLE IF EXISTS parts.DOG_Understanding_Level;
@@ -77,6 +116,15 @@ DROP TABLE IF EXISTS parts.DOG_Understanding_Level;
DROP TABLE IF EXISTS parts.DOG_Competency_Level_Temp;
DROP TABLE IF EXISTS parts.DOG_Competency_Level_Audit;
DROP TABLE IF EXISTS parts.DOG_Competency_Level;
/* End of remove section */
DROP TABLE IF EXISTS parts.DOG_Dog_Drive_Link_Temp;
DROP TABLE IF EXISTS parts.DOG_Dog_Drive_Link_Audit;
DROP TABLE IF EXISTS parts.DOG_Dog_Drive_Link;
DROP TABLE IF EXISTS parts.DOG_Drive_Temp;
DROP TABLE IF EXISTS parts.DOG_Drive_Audit;
DROP TABLE IF EXISTS parts.DOG_Drive;
DROP TABLE IF EXISTS parts.DOG_Dog_Breed_Link_Temp;
DROP TABLE IF EXISTS parts.DOG_Dog_Breed_Link_Audit;
@@ -92,6 +140,13 @@ DROP TABLE IF EXISTS parts.DOG_Dog;
DROP TABLE IF EXISTS parts.DOG_Dog_Change_Set;
-- Core tables
DROP TABLE IF EXISTS parts.DOG_Unit_Measurement_Conversion_Audit;
DROP TABLE IF EXISTS parts.DOG_Unit_Measurement_Conversion;
DROP TABLE IF EXISTS parts.DOG_Unit_Measurement_Audit;
DROP TABLE IF EXISTS parts.DOG_Unit_Measurement;
DROP TABLE IF EXISTS parts.DOG_Calc_User_Temp;
DROP TABLE IF EXISTS parts.DOG_User_Role_Link_Audit;
@@ -118,11 +173,10 @@ DROP TABLE IF EXISTS parts.DOG_Access_Level;
DROP TABLE IF EXISTS parts.DOG_User_Change_Set;
/*
DROP TABLE IF EXISTS parts.CORE_Split_Key_Value_Pair_Csv_Temp;
DROP TABLE IF EXISTS parts.CORE_Split_Temp;
*/
DROP TABLE IF EXISTS parts.CORE_File_Type;
DROP TABLE IF EXISTS parts.CORE_Msg_Error_Type;
@@ -130,6 +184,8 @@ DROP TABLE IF EXISTS parts.CORE_Msg_Error_Type;
DROP PROCEDURE IF EXISTS parts.p_DOG_test_get_many_dog_command;
DROP PROCEDURE IF EXISTS parts.p_DOG_test_get_many_command;
DROP PROCEDURE IF EXISTS parts.p_DOG_get_many_command;
DROP PROCEDURE IF EXISTS parts.p_DOG_get_many_dog_command;
DROP PROCEDURE IF EXISTS parts.p_DOG_get_many_dog_command_link;
DROP PROCEDURE IF EXISTS parts.p_DOG_test_save_command;
DROP PROCEDURE IF EXISTS parts.p_DOG_save_command;

View File

@@ -1,672 +0,0 @@
USE demo;
DROP PROCEDURE IF EXISTS demo.p_DOG_get_many_dog_command;
DELIMITER //
CREATE PROCEDURE demo.p_DOG_get_many_dog_command (
IN a_id_user INT
, IN a_get_all_dog BIT
, IN a_get_inactive_dog BIT
, IN a_ids_dog TEXT
, IN a_get_all_command BIT
, IN a_get_inactive_command BIT
, IN a_ids_command TEXT
, IN a_get_all_understanding_level BIT
, IN a_get_inactive_understanding_level BIT
, IN a_ids_understanding_level TEXT
, IN a_get_all_obedience_level BIT
, IN a_get_inactive_obedience_level BIT
, IN a_ids_obedience_level TEXT
, IN a_debug BIT
)
BEGIN
DECLARE v_code_type_error_bad_data VARCHAR(100);
DECLARE v_code_type_error_no_permission VARCHAR(100);
DECLARE v_id_type_error_bad_data INT;
DECLARE v_id_type_error_no_permission INT;
DECLARE v_has_filter_command BIT;
DECLARE v_has_filter_dog BIT;
DECLARE v_has_filter_obedience_level BIT;
DECLARE v_has_filter_understanding_level BIT;
DECLARE v_guid BINARY(36);
DECLARE v_id_permission_dog_view INT;
DECLARE v_id_minimum INT;
DECLARE v_time_start TIMESTAMP(6);
DECLARE v_can_view BIT;
DECLARE exit handler for SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1
@sqlstate = RETURNED_SQLSTATE
, @errno = MYSQL_ERRNO
, @text = MESSAGE_TEXT
;
ROLLBACK;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, code VARCHAR(100) NOT NULL
, msg VARCHAR(4000) NOT NULL
);
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
MET.id_type
, @errno
, @text
FROM demo.CORE_Msg_Error_Type MET
WHERE MET.code = 'MYSQL_ERROR'
;
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error t_ERROR
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
DROP TABLE IF EXISTS tmp_Msg_Error;
END;
SET v_time_start := CURRENT_TIMESTAMP(6);
SET v_guid := UUID();
SET v_code_type_error_bad_data := 'BAD_DATA';
SET v_code_type_error_no_permission := 'NO_PERMISSION';
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
SET a_id_user := IFNULL(a_id_user, 0);
SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
SET a_get_all_command := IFNULL(a_get_all_command, 0);
SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
SET a_get_all_understanding_level := IFNULL(a_get_all_understanding_level, 0);
SET a_get_inactive_understanding_level := IFNULL(a_get_inactive_understanding_level, 0);
SET a_ids_understanding_level := TRIM(IFNULL(a_ids_understanding_level, ''));
SET a_get_all_obedience_level := IFNULL(a_get_all_obedience_level, 0);
SET a_get_inactive_obedience_level := IFNULL(a_get_inactive_obedience_level, 0);
SET a_ids_obedience_level := TRIM(IFNULL(a_ids_obedience_level, ''));
SET a_debug := IFNULL(a_debug, 0);
IF a_debug = 1 THEN
SELECT
a_id_user
, a_get_all_dog
, a_get_inactive_dog
, a_ids_dog
, a_get_all_command
, a_get_inactive_command
, a_ids_command
, a_get_all_understanding_level
, a_get_inactive_understanding_level
, a_ids_understanding_level
, a_get_all_obedience_level
, a_get_inactive_obedience_level
, a_ids_obedience_level
, a_debug
;
SELECT
v_id_type_error_bad_data
, v_id_type_error_no_permission
, v_guid
, v_id_permission_dog_view
, v_time_start
;
END IF;
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level;
DROP TEMPORARY TABLE IF EXISTS tmp_Understanding_Level;
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
CREATE TEMPORARY TABLE tmp_Dog (
id_dog INT NOT NULL
, name VARCHAR(250)
);
CREATE TEMPORARY TABLE tmp_Command (
id_command INT NOT NULL
, id_command_category INT NOT NULL
, name_command_category VARCHAR(250)
, has_button
-- , code VARCHAR(100)
, name VARCHAR(250)
);
CREATE TEMPORARY TABLE tmp_Understanding_Level (
id_understanding_level INT NOT NULL
, code VARCHAR(100)
, name VARCHAR(250)
);
CREATE TEMPORARY TABLE tmp_Obedience_Level (
id_obedience_level INT NOT NULL
, code VARCHAR(100)
, name VARCHAR(250)
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, code VARCHAR(100) NOT NULL
, msg VARCHAR(4000) NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
);
DELETE FROM tmp_Split;
CALL demo.p_core_validate_guid ( v_guid );
SET v_has_filter_dog = CASE WHEN a_ids_dog = '' THEN 0 ELSE 1 END;
SET v_has_filter_command = CASE WHEN a_ids_command = '' THEN 0 ELSE 1 END;
SET v_has_filter_understanding_level = CASE WHEN a_ids_understanding_level = '' THEN 0 ELSE 1 END;
SET v_has_filter_obedience_level = CASE WHEN a_ids_obedience_level = '' THEN 0 ELSE 1 END;
-- Dogs
IF v_has_filter_dog = 1 THEN
CALL demo.p_split(v_guid, a_ids_dog, ',', a_debug);
INSERT INTO tmp_Split (
substring
, as_int
)
SELECT
SPLIT_T.substring
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
FROM demo.CORE_Split_Temp SPLIT_T
WHERE
SPLIT_T.GUID = v_guid
AND IFNULL(SPLIT_T.substring, '') <> ''
;
CALL demo.p_clear_split_temp( v_guid );
END IF;
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.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_Split t_SPLIT
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
WHERE
ISNULL(t_SPLIT.as_int)
OR ISNULL(DOG.id_dog)
OR (
DOG.active = 0
AND a_get_inactive_dog = 0
)
) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
FROM tmp_Split t_SPLIT
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
WHERE
ISNULL(t_SPLIT.as_int)
OR ISNULL(DOG.id_dog)
OR (
DOG.active = 0
AND a_get_inactive_dog = 0
)
;
ELSE
INSERT INTO tmp_Dog (
id_dog
, name
)
SELECT
DOG.id_dog
, DOG.name
FROM tmp_Split t_SPLIT
RIGHT JOIN demo.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
WHERE
(
a_get_all_dog = 1
OR (
v_has_filter_dog = 1
AND NOT ISNULL(t_SPLIT.as_int)
)
)
AND (
a_get_inactive_dog = 1
OR DOG.active = 1
)
;
END IF;
END IF;
DELETE FROM tmp_Split;
-- Commands
IF v_has_filter_command = 1 THEN
CALL demo.p_split(v_guid, a_ids_command, ',', a_debug);
INSERT INTO tmp_Split (
substring
, as_int
)
SELECT
substring
, CONVERT(substring, DECIMAL(10,0)) AS as_int
FROM demo.CORE_Split_Temp
WHERE
GUID = v_guid
AND NOT ISNULL(substring)
AND substring <> ''
;
CALL demo.p_clear_split_temp( v_guid );
END IF;
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.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_Split t_SPLIT
LEFT JOIN demo.DOG_Command COMMAND ON t_SPLIT.as_int = COMMAND.id_command
WHERE
ISNULL(t_SPLIT.as_int)
OR ISNULL(COMMAND.id_command)
OR (
COMMAND.active = 0
AND a_get_inactive_command = 0
)
) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('Invalid or inactive Command IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
FROM tmp_Split t_SPLIT
LEFT JOIN demo.DOG_Command COMMAND ON t_SPLIT.as_int = COMMAND.id_command
WHERE
ISNULL(t_SPLIT.as_int)
OR ISNULL(COMMAND.id_command)
OR (
COMMAND.active = 0
AND a_get_inactive_command = 0
)
;
ELSE
INSERT INTO tmp_Command (
id_command
, id_command_category
, name_command_category
, name
)
SELECT
COMMAND.id_command
, COMMAND.id_command_category
, COMMAND_CATEGORY.name AS name_command_category
-- , COMMAND.code
, COMMAND.name
FROM tmp_Split t_SPLIT
RIGHT JOIN demo.DOG_Command COMMAND ON t_SPLIT.as_int = COMMAND.id_command
LEFT JOIN demo.DOG_Command_Category COMMAND_CATEGORY ON COMMAND.id_command_category = COMMAND_CATEGORY.id_command_category
WHERE
(
a_get_all_command = 1
OR (
v_has_filter_command = 1
AND NOT ISNULL(t_SPLIT.as_int)
)
)
AND (
a_get_inactive_command = 1
OR COMMAND.active = 1
)
;
END IF;
END IF;
DELETE FROM tmp_Split;
-- Understanding Levels
IF v_has_filter_understanding_level = 1 THEN
CALL demo.p_split(v_guid, a_ids_understanding_level, ',', a_debug);
INSERT INTO tmp_Split (
substring
, as_int
)
SELECT
substring
, CONVERT(substring, DECIMAL(10,0)) AS as_int
FROM demo.CORE_Split_Temp
WHERE
GUID = v_guid
AND NOT ISNULL(substring)
AND substring <> ''
;
CALL demo.p_clear_split_temp( v_guid );
END IF;
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.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_Split t_SPLIT
LEFT JOIN demo.DOG_Understanding_Level UNDERSTANDING_LEVEL ON t_SPLIT.as_int = UNDERSTANDING_LEVEL.id_understanding_level
WHERE
ISNULL(t_SPLIT.as_int)
OR ISNULL(UNDERSTANDING_LEVEL.id_understanding_level)
OR (
UNDERSTANDING_LEVEL.active = 0
AND a_get_inactive_understanding_level = 0
)
) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('Invalid or inactive Understanding Level IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
FROM tmp_Split t_SPLIT
LEFT JOIN demo.DOG_Understanding_Level UNDERSTANDING_LEVEL ON t_SPLIT.as_int = UNDERSTANDING_LEVEL.id_understanding_level
WHERE
ISNULL(t_SPLIT.as_int)
OR ISNULL(UNDERSTANDING_LEVEL.id_understanding_level)
OR (
UNDERSTANDING_LEVEL.active = 0
AND a_get_inactive_understanding_level = 0
)
;
ELSE
INSERT INTO tmp_Understanding_Level (
id_understanding_level
, code
, name
)
SELECT
UNDERSTANDING_LEVEL.id_understanding_level
, UNDERSTANDING_LEVEL.code
, UNDERSTANDING_LEVEL.name
FROM tmp_Split t_SPLIT
RIGHT JOIN demo.DOG_Understanding_Level UNDERSTANDING_LEVEL ON t_SPLIT.as_int = UNDERSTANDING_LEVEL.id_understanding_level
WHERE
(
a_get_all_understanding_level = 1
OR (
v_has_filter_understanding_level = 1
AND NOT ISNULL(t_SPLIT.as_int)
)
)
AND (
a_get_inactive_understanding_level = 1
OR UNDERSTANDING_LEVEL.active = 1
)
;
END IF;
END IF;
DELETE FROM tmp_Split;
-- Obedience Levels
IF v_has_filter_obedience_level = 1 THEN
CALL demo.p_split(v_guid, a_ids_obedience_level, ',', a_debug);
INSERT INTO tmp_Split (
substring
, as_int
)
SELECT
substring
, CONVERT(substring, DECIMAL(10,0)) AS as_int
FROM demo.CORE_Split_Temp
WHERE
GUID = v_guid
AND NOT ISNULL(substring)
AND substring <> ''
;
CALL demo.p_clear_split_temp( v_guid );
END IF;
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.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_Split t_SPLIT
LEFT JOIN demo.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_SPLIT.as_int = OBEDIENCE_LEVEL.id_obedience_level
WHERE
ISNULL(t_SPLIT.as_int)
OR ISNULL(OBEDIENCE_LEVEL.id_obedience_level)
OR (
OBEDIENCE_LEVEL.active = 0
AND a_get_inactive_obedience_level = 0
)
) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('Invalid or inactive Obedience Level IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
FROM tmp_Split t_SPLIT
LEFT JOIN demo.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_SPLIT.as_int = OBEDIENCE_LEVEL.id_obedience_level
WHERE
ISNULL(t_SPLIT.as_int)
OR ISNULL(OBEDIENCE_LEVEL.id_obedience_level)
OR (
OBEDIENCE_LEVEL.active = 0
AND a_get_inactive_obedience_level = 0
)
;
ELSE
INSERT INTO tmp_Obedience_Level (
id_obedience_level
, code
, name
)
SELECT
OBEDIENCE_LEVEL.id_obedience_level
, OBEDIENCE_LEVEL.code
, OBEDIENCE_LEVEL.name
FROM tmp_Split t_SPLIT
RIGHT JOIN demo.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_SPLIT.as_int = OBEDIENCE_LEVEL.id_obedience_level
WHERE
(
a_get_all_obedience_level = 1
OR (
v_has_filter_obedience_level = 1
AND NOT ISNULL(t_SPLIT.as_int)
)
)
AND (
a_get_inactive_obedience_level = 1
OR OBEDIENCE_LEVEL.active = 1
)
;
END IF;
END IF;
DELETE FROM tmp_Split;
-- Permissions
IF a_debug = 1 THEN
SELECT
v_guid
, a_id_user
, FALSE -- a_get_inactive_user
, v_id_permission_dog_view
, 0 -- a_debug
;
END IF;
CALL demo.p_DOG_calc_user(
v_guid
, a_id_user
, FALSE -- a_get_inactive_user
, v_id_permission_dog_view
, 0 -- a_debug
);
SELECT
IFNULL(CALC_USER_T.has_access, 0)
INTO
v_can_view
FROM demo.DOG_Calc_User_Temp CALC_USER_T
WHERE CALC_USER_T.GUID = v_guid
LIMIT 1
;
IF a_debug = 1 THEN
SELECT v_can_view;
END IF;
IF (v_can_view = 0) THEN
DELETE t_ME
FROM tmp_Msg_Error t_ME
WHERE t_ME.id_type <> v_id_type_error_no_permission
;
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
VALUES (
v_id_type_error_no_permission
, v_code_type_error_no_permission
, 'You do not have permission to view Commands.'
)
;
END IF;
CALL demo.p_DOG_clear_calc_user(
v_guid
, 0 -- a_debug
);
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.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_Dog;
SELECT * FROM tmp_Command;
SELECT * FROM tmp_Obedience_Level;
END IF;
DELETE FROM tmp_Dog;
DELETE FROM tmp_Command;
SELECT * FROM tmp_Understanding_Level;
DELETE FROM tmp_Obedience_Level;
END IF;
-- Outputs
-- Commands
SELECT
DOG_COMMAND_LINK.id_link AS id_dog_command_link
, t_DOG.id_dog
, t_DOG.name AS name_dog
, t_COMMAND.id_command_category
, t_COMMAND.name_command_category
, t_COMMAND.id_command
-- , t_COMMAND.code
, t_COMMAND.name AS name_command
, t_UNDERSTANDING_LEVEL.id_understanding_level
, t_UNDERSTANDING_LEVEL.code AS code_understanding_level
, t_UNDERSTANDING_LEVEL.name AS name_understanding_level
, t_OBEDIENCE_LEVEL.id_obedience_level
, t_OBEDIENCE_LEVEL.code AS code_obedience_level
, t_OBEDIENCE_LEVEL.name AS name_obedience_level
, DOG_COMMAND_LINK.hand_signal_description
, DOG_COMMAND_LINK.notes
, DOG_COMMAND_LINK.active
FROM demo.DOG_Dog_Command_Link DOG_COMMAND_LINK
INNER JOIN tmp_Dog t_DOG ON DOG_COMMAND_LINK.id_dog = t_DOG.id_dog
INNER JOIN tmp_Command t_COMMAND ON DOG_COMMAND_LINK.id_command = t_COMMAND.id_command
INNER JOIN tmp_Understanding_Level t_UNDERSTANDING_LEVEL ON DOG_COMMAND_LINK.id_understanding_level = t_UNDERSTANDING_LEVEL.id_understanding_level
INNER JOIN tmp_Obedience_Level t_OBEDIENCE_LEVEL ON DOG_COMMAND_LINK.id_obedience_level = t_OBEDIENCE_LEVEL.id_obedience_level
;
-- Errors
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error t_ERROR
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
IF a_debug = 1 AND v_can_view = 1 THEN
SELECT * FROM tmp_Dog;
SELECT * FROM tmp_Command;
SELECT * FROM tmp_Understanding_Level;
SELECT * FROM tmp_Obedience_Level;
END IF;
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level;
DROP TEMPORARY TABLE IF EXISTS tmp_Understanding_Level;
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
IF a_debug = 1 THEN
CALL demo.p_core_debug_timing_reporting ( v_time_start );
END IF;
END //
DELIMITER ;
/*
CALL demo.p_DOG_get_many_dog_command (
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
, 1 -- a_get_all_dog
, 0 -- a_get_inactive_dog
, '' -- a_ids_dog
, 1 -- a_get_all_command
, 0 -- a_get_inactive_command
, '' -- a_ids_command
, 1 -- a_get_all_understanding_level
, 0 -- a_get_inactive_understanding_level
, '' -- a_ids_understanding_level
, 1 -- a_get_all_obedience_level
, 0 -- a_get_inactive_obedience_level
, '' -- a_ids_obedience_level
, 1 -- a_debug
);
*/

View File

@@ -0,0 +1,25 @@
# Unit of Measurement
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Unit_Measurement'
;
CREATE TABLE IF NOT EXISTS DOG_Unit_Measurement (
id_unit_measurement INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, name_singular VARCHAR(255) NOT NULL
, name_plural VARCHAR(256) NOT NULL
, symbol VARCHAR(50) NOT NULL
, symbol_is_suffix_not_prefix BIT NOT NULL DEFAULT 1
, is_base_unit BIT NOT NULL DEFAULT 0
, is_unit_of_distance BIT NOT NULL DEFAULT 0
, is_unit_of_mass BIT NOT NULL DEFAULT 0
, is_unit_of_time BIT NOT NULL DEFAULT 0
, is_unit_of_volume BIT NOT NULL DEFAULT 0
, active BIT NOT NULL DEFAULT 1
);

View File

@@ -0,0 +1,22 @@
# Unit of Measurement Conversion
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Unit_Measurement_Conversion'
;
CREATE TABLE IF NOT EXISTS DOG_Unit_Measurement_Conversion (
id_conversion INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_unit_derived INT NOT NULL
, id_unit_base INT NOT NULL
, multiplier_unit_base FLOAT NOT NULL
, increment_unit_base FLOAT NOT NULL
, apply_multiplier_before_increment BIT NOT NULL DEFAULT 1
, active BIT NOT NULL DEFAULT 1
, display_order INT NOT NULL
);

View File

@@ -18,6 +18,7 @@ CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Command_Link (
, CONSTRAINT FK_DOG_Dog_Command_Link_id_command
FOREIGN KEY (id_command)
REFERENCES parts.DOG_Command(id_command)
/*
, id_understanding_level INT NOT NULL
, CONSTRAINT FK_DOG_Dog_Command_Link_id_understanding_level
FOREIGN KEY (id_understanding_level)
@@ -26,6 +27,7 @@ CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Command_Link (
, CONSTRAINT FK_DOG_Dog_Command_Link_id_obedience_level
FOREIGN KEY (id_obedience_level)
REFERENCES parts.DOG_Obedience_Level(id_obedience_level)
*/
, hand_signal_description TEXT
, notes TEXT
-- , has_button BIT NOT NULL DEFAULT 0

View File

@@ -13,8 +13,10 @@ CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Command_Link_Temp (
, id_link INT
, id_dog INT
, id_command INT
/*
, id_understanding_level INT
, id_obedience_level INT
*/
, hand_signal_description TEXT
, notes TEXT
-- , has_button BIT

View File

@@ -0,0 +1,25 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Command_Modality'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Command_Modality (
id_command_modality INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, code VARCHAR(100) NOT NULL
, name VARCHAR(250) NOT NULL
, active BIT NOT NULL DEFAULT 1
, created_on DATETIME
, id_user_created_by INT
, CONSTRAINT FK_DOG_Command_Modality_id_user_created_by
FOREIGN KEY (id_user_created_by)
REFERENCES parts.DOG_User(id_user)
, id_change_set INT
, CONSTRAINT FK_DOG_Command_Modality_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,24 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Command_Modality_Audit'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Command_Modality_Audit (
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_command_modality INT NOT NULL
, CONSTRAINT FK_DOG_Command_Modality_Audit_id_command_modality
FOREIGN KEY (id_command_modality)
REFERENCES parts.DOG_Command_Modality(id_command_modality)
, name_field VARCHAR(100) NOT NULL
, value_prev TEXT
, value_new TEXT
, id_change_set INT NOT NULL
, CONSTRAINT FK_DOG_Command_Modality_Audit_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,18 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Command_Modality_Temp'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Command_Modality_Temp (
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_command_modality INT
, code VARCHAR(100)
, name VARCHAR(250)
, active BIT
, guid BINARY(36)
);

View File

@@ -0,0 +1,25 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Weather'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Weather (
id_weather INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, code VARCHAR(100) NOT NULL
, name VARCHAR(250) NOT NULL
, active BIT NOT NULL DEFAULT 1
, created_on DATETIME
, id_user_created_by INT
, CONSTRAINT FK_DOG_Weather_id_user_created_by
FOREIGN KEY (id_user_created_by)
REFERENCES parts.DOG_User(id_user)
, id_change_set INT
, CONSTRAINT FK_DOG_Weather_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,24 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Weather_Audit'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Weather_Audit (
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_weather INT NOT NULL
, CONSTRAINT FK_DOG_Weather_Audit_id_weather
FOREIGN KEY (id_weather)
REFERENCES parts.DOG_Weather(id_weather)
, name_field VARCHAR(100) NOT NULL
, value_prev TEXT
, value_new TEXT
, id_change_set INT NOT NULL
, CONSTRAINT FK_DOG_Weather_Audit_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,18 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Weather_Temp'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Weather_Temp (
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_weather INT
, code VARCHAR(100)
, name VARCHAR(250)
, active BIT
, guid BINARY(36)
);

View File

@@ -0,0 +1,25 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Lighting_Level'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Lighting_Level (
id_lighting_level INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, code VARCHAR(100) NOT NULL
, name VARCHAR(250) NOT NULL
, active BIT NOT NULL DEFAULT 1
, created_on DATETIME
, id_user_created_by INT
, CONSTRAINT FK_DOG_Lighting_Level_id_user_created_by
FOREIGN KEY (id_user_created_by)
REFERENCES parts.DOG_User(id_user)
, id_change_set INT
, CONSTRAINT FK_DOG_Lighting_Level_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,24 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Lighting_Level_Audit'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Lighting_Level_Audit (
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_lighting_level INT NOT NULL
, CONSTRAINT FK_DOG_Lighting_Level_Audit_id_lighting_level
FOREIGN KEY (id_lighting_level)
REFERENCES parts.DOG_Lighting_Level(id_lighting_level)
, name_field VARCHAR(100) NOT NULL
, value_prev TEXT
, value_new TEXT
, id_change_set INT NOT NULL
, CONSTRAINT FK_DOG_Lighting_Level_Audit_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,18 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Lighting_Level_Temp'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Lighting_Level_Temp (
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_lighting_level INT
, code VARCHAR(100)
, name VARCHAR(250)
, active BIT
, guid BINARY(36)
);

View File

@@ -0,0 +1,42 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Assessment'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Assessment (
id_assessment INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_weather INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_id_weather
FOREIGN KEY (id_weather)
REFERENCES parts.DOG_Weather(id_weather)
, id_lighting_level INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_id_lighting_level
FOREIGN KEY (id_lighting_level)
REFERENCES parts.DOG_Lighting_Level(id_lighting_level)
, id_location INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_id_location
FOREIGN KEY (id_location)
REFERENCES parts.DOG_Location(id_location)
, id_user_handler INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_id_user_handler
FOREIGN KEY (id_user_handler)
REFERENCES parts.DOG_User(id_user)
, notes TEXT
, temperature_celcius DECIMAL(5, 2)
, difficulty_level DOUBLE
, active BIT NOT NULL DEFAULT 1
, created_on DATETIME
, id_user_created_by INT
, CONSTRAINT FK_DOG_Assessment_id_user_created_by
FOREIGN KEY (id_user_created_by)
REFERENCES parts.DOG_User(id_user)
, id_change_set INT
, CONSTRAINT FK_DOG_Assessment_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,24 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Assessment_Audit'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Audit (
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_assessment INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_Audit_id_assessment
FOREIGN KEY (id_assessment)
REFERENCES parts.DOG_Assessment(id_assessment)
, name_field VARCHAR(100) NOT NULL
, value_prev TEXT
, value_new TEXT
, id_change_set INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_Audit_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,23 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Assessment_Temp'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Temp (
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_assessment INT
, id_weather INT
, id_lighting_level INT
, id_location INT
, id_user_handler INT
, notes TEXT
, temperature_celcius DECIMAL(5, 2)
-- , difficulty_level DOUBLE
, active BIT
, guid BINARY(36)
);

View File

@@ -0,0 +1,25 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Distraction_Type'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Distraction_Type (
id_type INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, code VARCHAR(100) NOT NULL
, name VARCHAR(250) NOT NULL
, active BIT NOT NULL DEFAULT 1
, created_on DATETIME
, id_user_created_by INT
, CONSTRAINT FK_DOG_Distraction_Type_id_user_created_by
FOREIGN KEY (id_user_created_by)
REFERENCES parts.DOG_User(id_user)
, id_change_set INT
, CONSTRAINT FK_DOG_Distraction_Type_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,24 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Distraction_Type_Audit'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Distraction_Type_Audit (
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_type INT NOT NULL
, CONSTRAINT FK_DOG_Distraction_Type_Audit_id_type
FOREIGN KEY (id_type)
REFERENCES parts.DOG_Distraction_Type(id_type)
, name_field VARCHAR(100) NOT NULL
, value_prev TEXT
, value_new TEXT
, id_change_set INT NOT NULL
, CONSTRAINT FK_DOG_Distraction_Type_Audit_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,18 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Distraction_Type_Temp'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Distraction_Type_Temp (
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT
, code VARCHAR(100)
, name VARCHAR(250)
, active BIT
, guid BINARY(36)
);

View File

@@ -0,0 +1,25 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Distraction_Intensity_Level'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Distraction_Intensity_Level (
id_intensity_level INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, code VARCHAR(100) NOT NULL
, name VARCHAR(250) NOT NULL
, active BIT NOT NULL DEFAULT 1
, created_on DATETIME
, id_user_created_by INT
, CONSTRAINT FK_DOG_Distraction_Intensity_Level_id_user_created_by
FOREIGN KEY (id_user_created_by)
REFERENCES parts.DOG_User(id_user)
, id_change_set INT
, CONSTRAINT FK_DOG_Distraction_Intensity_Level_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,24 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Distraction_Intensity_Level_Audit'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Distraction_Intensity_Level_Audit (
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_intensity_level INT NOT NULL
, CONSTRAINT FK_DOG_Distraction_Intensity_Level_Audit_id_intensity_level
FOREIGN KEY (id_intensity_level)
REFERENCES parts.DOG_Distraction_Intensity_Level(id_intensity_level)
, name_field VARCHAR(100) NOT NULL
, value_prev TEXT
, value_new TEXT
, id_change_set INT NOT NULL
, CONSTRAINT FK_DOG_Distraction_Intensity_Level_Audit_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,18 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Distraction_Intensity_Level_Temp'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Distraction_Intensity_Level_Temp (
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_intensity_level INT
, code VARCHAR(100)
, name VARCHAR(250)
, active BIT
, guid BINARY(36)
);

View File

@@ -0,0 +1,53 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Distraction'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Distraction (
id_distraction INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_assessment INT NOT NULL
, CONSTRAINT FK_DOG_Distraction_id_assessment
FOREIGN KEY (id_assessment)
REFERENCES parts.DOG_Assessment(id_assessment)
, id_distraction_type INT NOT NULL
, CONSTRAINT FK_DOG_Distraction_id_distraction_type
FOREIGN KEY (id_distraction_type)
REFERENCES parts.DOG_Distraction_Type(id_type)
, id_intensity_level_emotional INT NOT NULL
, CONSTRAINT FK_DOG_Distraction_id_intensity_level_emotional
FOREIGN KEY (id_intensity_level_emotional)
REFERENCES parts.DOG_Distraction_Intensity_Level(id_intensity_level)
, id_intensity_level_scent INT NOT NULL
, CONSTRAINT FK_DOG_Distraction_id_intensity_level_scent
FOREIGN KEY (id_intensity_level_scent)
REFERENCES parts.DOG_Distraction_Intensity_Level(id_intensity_level)
, id_intensity_level_sight INT NOT NULL
, CONSTRAINT FK_DOG_Distraction_id_intensity_level_sight
FOREIGN KEY (id_intensity_level_sight)
REFERENCES parts.DOG_Distraction_Intensity_Level(id_intensity_level)
, id_intensity_level_sound INT NOT NULL
, CONSTRAINT FK_DOG_Distraction_id_intensity_level_sound
FOREIGN KEY (id_intensity_level_sound)
REFERENCES parts.DOG_Distraction_Intensity_Level(id_intensity_level)
, id_intensity_level_touch INT NOT NULL
, CONSTRAINT FK_DOG_Distraction_id_intensity_level_touch
FOREIGN KEY (id_intensity_level_touch)
REFERENCES parts.DOG_Distraction_Intensity_Level(id_intensity_level)
, quantity INT
, proximity_metres FLOAT
, active BIT NOT NULL DEFAULT 1
, created_on DATETIME
, id_user_created_by INT
, CONSTRAINT FK_DOG_Distraction_id_user_created_by
FOREIGN KEY (id_user_created_by)
REFERENCES parts.DOG_User(id_user)
, id_change_set INT
, CONSTRAINT FK_DOG_Distraction_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,24 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Distraction_Audit'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Distraction_Audit (
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_distraction INT NOT NULL
, CONSTRAINT FK_DOG_Distraction_Audit_id_distraction
FOREIGN KEY (id_distraction)
REFERENCES parts.DOG_Distraction(id_distraction)
, name_field VARCHAR(100) NOT NULL
, value_prev TEXT
, value_new TEXT
, id_change_set INT NOT NULL
, CONSTRAINT FK_DOG_Distraction_Audit_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,24 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Distraction_Temp'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Distraction_Temp (
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_assessment INT
, id_distraction_type INT
, id_intensity_level_emotional INT
, id_intensity_level_sight INT
, id_intensity_level_sound INT
, id_intensity_level_touch INT
, quantity INT
, proximity_metres FLOAT
-- , difficulty_level DOUBLE
, active BIT
, guid BINARY(36)
);

View File

@@ -0,0 +1,25 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Bribe'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Bribe (
id_bribe INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, code VARCHAR(100) NOT NULL
, name VARCHAR(250) NOT NULL
, active BIT NOT NULL DEFAULT 1
, created_on DATETIME
, id_user_created_by INT
, CONSTRAINT FK_DOG_Bribe_id_user_created_by
FOREIGN KEY (id_user_created_by)
REFERENCES parts.DOG_User(id_user)
, id_change_set INT
, CONSTRAINT FK_DOG_Bribe_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,24 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Bribe_Audit'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Bribe_Audit (
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_bribe INT NOT NULL
, CONSTRAINT FK_DOG_Bribe_Audit_id_bribe
FOREIGN KEY (id_bribe)
REFERENCES parts.DOG_Bribe(id_bribe)
, name_field VARCHAR(100) NOT NULL
, value_prev TEXT
, value_new TEXT
, id_change_set INT NOT NULL
, CONSTRAINT FK_DOG_Bribe_Audit_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,18 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Bribe_Temp'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Bribe_Temp (
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_bribe INT
, code VARCHAR(100)
, name VARCHAR(250)
, active BIT
, guid BINARY(36)
);

View File

@@ -0,0 +1,45 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Assessment_Command_Modality_Link'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Command_Modality_Link (
id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_assessment INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_Command_Modality_Link_id_assessment
FOREIGN KEY (id_assessment)
REFERENCES parts.DOG_Assessment(id_assessment)
, id_command INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_Command_Modality_Link_id_command
FOREIGN KEY (id_command)
REFERENCES parts.DOG_Command(id_command)
, id_command_modality INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_Command_Modality_Link_id_command_modality
FOREIGN KEY (id_command_modality)
REFERENCES parts.DOG_Command_Modality(id_command_modality)
, id_bribe INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_Command_Modality_Link_id_bribe
FOREIGN KEY (id_bribe)
REFERENCES parts.DOG_Bribe(id_bribe)
, distance_from_handler FLOAT
, is_in_sight_of_handler BIT
, is_in_scent_range_of_handler BIT
, is_in_hearing_range_of_handler BIT
, is_on_lead BIT
, trial_count INT
, active BIT NOT NULL DEFAULT 1
, created_on DATETIME
, id_user_created_by INT
, CONSTRAINT FK_DOG_Assessment_Command_Modality_Link_id_user_created_by
FOREIGN KEY (id_user_created_by)
REFERENCES parts.DOG_User(id_user)
, id_change_set INT
, CONSTRAINT FK_DOG_Assessment_Command_Modality_Link_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,24 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Assessment_Command_Modality_Link_Audit'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Command_Modality_Link_Audit (
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_link INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_Command_Modality_Link_Audit_id_link
FOREIGN KEY (id_link)
REFERENCES parts.DOG_Assessment_Command_Modality_Link(id_link)
, name_field VARCHAR(100) NOT NULL
, value_prev TEXT
, value_new TEXT
, id_change_set INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_Command_Modality_Link_Audit_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,25 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Assessment_Command_Modality_Link_Temp'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Command_Modality_Link_Temp (
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_assessment INT
, id_command INT
, id_command_modality INT
, id_bribe INT
, distance_from_handler FLOAT
, is_in_sight_of_handler BIT
, is_in_scent_range_of_handler BIT
, is_in_hearing_range_of_handler BIT
, is_on_lead BIT
, trial_count INT
, active BIT
, guid BINARY(36)
);

View File

@@ -0,0 +1,31 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Response_Quality_Metric'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Response_Quality_Metric (
id_metric INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_unit_measurement INT NOT NULL
, CONSTRAINT FK_DOG_Response_Quality_Metric_id_unit_measurement
FOREIGN KEY (id_unit_measurement)
REFERENCES parts.DOG_Unit_Measurement(id_unit_measurement)
, code VARCHAR(100) NOT NULL
, name VARCHAR(250) NOT NULL
, value_min DOUBLE
, value_max DOUBLE
, active BIT NOT NULL DEFAULT 1
, created_on DATETIME
, id_user_created_by INT
, CONSTRAINT FK_DOG_Response_Quality_Metric_id_user_created_by
FOREIGN KEY (id_user_created_by)
REFERENCES parts.DOG_User(id_user)
, id_change_set INT
, CONSTRAINT FK_DOG_Response_Quality_Metric_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,24 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Response_Quality_Metric_Audit'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Response_Quality_Metric_Audit (
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_metric INT NOT NULL
, CONSTRAINT FK_DOG_Response_Quality_Metric_Audit_id_metric
FOREIGN KEY (id_metric)
REFERENCES parts.DOG_Response_Quality_Metric(id_metric)
, name_field VARCHAR(100) NOT NULL
, value_prev TEXT
, value_new TEXT
, id_change_set INT NOT NULL
, CONSTRAINT FK_DOG_Response_Quality_Metric_Audit_id_change_set
FOREIGN KEY (id_change_set)
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
);

View File

@@ -0,0 +1,21 @@
USE parts;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Response_Quality_Metric_Temp'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Response_Quality_Metric_Temp (
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_metric INT
, id_unit_measurement INT
, code VARCHAR(100)
, name VARCHAR(250)
, value_min DOUBLE
, value_max DOUBLE
, active BIT
, guid BINARY(36)
);

Some files were not shown because too many files have changed in this diff Show More