Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20190722.sql =================================================================== diff -u -rfadc30445af67b39ce07890493c9cea08c3ea5db -r2e0feff80999b1c81deb3d2bc462619b1bc64fdc --- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20190722.sql (.../patch20190722.sql) (revision fadc30445af67b39ce07890493c9cea08c3ea5db) +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20190722.sql (.../patch20190722.sql) (revision 2e0feff80999b1c81deb3d2bc462619b1bc64fdc) @@ -399,7 +399,19 @@ -- if this column is not *exactly* as in an other row, it means it should be a separate question in QB ALTER TABLE tl_laasse10_question_option ADD INDEX (sequence_id), ADD INDEX tmp_index (sequence_id, question_uid); - + +-- check if patch20190423.sql in Assessment has already run +-- if not, create index so we can use it in queries, then drop it +SET @exist := (SELECT COUNT(*) from information_schema.statistics WHERE + table_name = 'tl_laasse10_option_answer' AND + index_name = 'FK_tl_laasse10_option_answer_2' AND + table_schema = database()); +SET @sqlstmt := IF(@exist > 0, + 'SELECT ''INFO: Index FK_tl_laasse10_option_answer_2 already exists.''', + 'ALTER TABLE tl_laasse10_option_answer ADD CONSTRAINT FK_tl_laasse10_option_answer_2 FOREIGN KEY (question_option_uid) REFERENCES tl_laasse10_question_option (uid)'); +PREPARE stmt FROM @sqlstmt; +EXECUTE stmt; + INSERT INTO tmp_question SELECT q.uid, REPLACE(REPLACE(REPLACE(strip_tags(GROUP_CONCAT(q.question, o.option_string ORDER BY o.sequence_id)) Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20190423.sql =================================================================== diff -u -r029874e2f2302fc732117f132610f8ef3f4ade79 -r2e0feff80999b1c81deb3d2bc462619b1bc64fdc --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20190423.sql (.../patch20190423.sql) (revision 029874e2f2302fc732117f132610f8ef3f4ade79) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20190423.sql (.../patch20190423.sql) (revision 2e0feff80999b1c81deb3d2bc462619b1bc64fdc) @@ -4,8 +4,15 @@ ----------------------Put all sql statements below here------------------------- -- LDEV-4813 Add a missing foreign key and index to speed up queries -ALTER TABLE tl_laasse10_option_answer ADD CONSTRAINT FK_tl_laasse10_option_answer_2 FOREIGN KEY (question_option_uid) - REFERENCES tl_laasse10_question_option (uid) ON DELETE CASCADE ON UPDATE CASCADE; +-- We need to check if patch20190722.sql from lams_common has not run already +SET @exist := (SELECT COUNT(*) from information_schema.statistics WHERE + table_name = 'lams_qb_question' AND + table_schema = database()); +SET @sqlstmt := IF(@exist > 0, + 'SELECT ''INFO: Question Bank has already created necessary foreign keys''', + 'ALTER TABLE tl_laasse10_option_answer ADD CONSTRAINT FK_tl_laasse10_option_answer_2 FOREIGN KEY (question_option_uid) REFERENCES tl_laasse10_question_option (uid) ON DELETE CASCADE ON UPDATE CASCADE'); +PREPARE stmt FROM @sqlstmt; +EXECUTE stmt; ----------------------Put all sql statements above here-------------------------