diff --git a/database/update_role_details.sql b/database/update_role_details.sql index 381f76255dcae45e82e0cd68482675210359a767..6b3a41d126284707313faaa8a981504aae981880 100644 --- a/database/update_role_details.sql +++ b/database/update_role_details.sql @@ -2,52 +2,49 @@ delimiter // CREATE PROCEDURE `update_role_details`() begin DELETE FROM entity_details; -INSERT INTO entity_details (entity_id, displayname) select entity_id,group_concat(concat(lang,';',displayname) ORDER BY lang separator '==') FROM entity_organization GROUP BY entity_id; +INSERT INTO entity_details (entity_id, displayname) SELECT entity_id,group_concat(concat(lang,';',displayname) ORDER BY lang separator '==') FROM entity_organization GROUP BY entity_id; -INSERT INTO entity_details (entity_id, entity_cat) select entity_id,group_concat(entityattributes_dict_id separator ';') FROM entity_attributes GROUP BY entity_id ON duplicate key UPDATE entity_cat=values(entity_cat); +INSERT INTO entity_details (entity_id, entity_cat) SELECT entity_id,group_concat(entityattributes_dict_id separator ';') FROM entity_attributes GROUP BY entity_id ON duplicate key UPDATE entity_cat=VALUES(entity_cat); -INSERT INTO entity_details (entity_id,saml2_support) select entity_id, max(saml2) AS saml2_e FROM (select entity_roles.entity_id AS entity_id, max(entity_protocolsupport.value regexp ':2\\\\.0:') AS saml2 FROM entity_protocolsupport JOIN entity_roles ON entity_protocolsupport.entityrole_id = entity_roles.id GROUP BY entity_protocolsupport.entityrole_id) AS r GROUP BY entity_id ON duplicate key UPDATE saml2_support=values(saml2_support); +INSERT INTO entity_details (entity_id,saml2_support) SELECT entity_id, max(saml2) AS saml2_e FROM (SELECT entity_roles.entity_id AS entity_id, max(entity_protocolsupport.value regexp ':2\\\\.0:') AS saml2 FROM entity_protocolsupport JOIN entity_roles ON entity_protocolsupport.entityrole_id = entity_roles.id GROUP BY entity_protocolsupport.entityrole_id) AS r GROUP BY entity_id ON duplicate key UPDATE saml2_support=VALUES(saml2_support); -INSERT INTO entity_details (entity_id, clash) select entity_id,count(code) FROM entity_duplication GROUP BY entity_id ON duplicate key UPDATE clash=values(clash); +INSERT INTO entity_details (entity_id, clash) SELECT entity_id,count(code) FROM entity_duplication GROUP BY entity_id ON duplicate key UPDATE clash=VALUES(clash); UPDATE entity_details JOIN entities ON entity_details.entity_id=entities.id JOIN eccs_stat ON entities.entityid = eccs_stat.entityid set entity_details.eccs_status=eccs_stat.status, entity_details.eccs_status_date=eccs_stat.update_date; UPDATE entity_details JOIN entities ON entity_details.entity_id=entities.id JOIN coco_stat ON entities.entityid = coco_stat.entityid set entity_details.coco_status=coco_stat.status, entity_details.coco_id=coco_stat.coco_id; -create temporary table entity_warn_tmp as (select entities.id as entity_id, BIT_OR(ifnull(1<<entity_role_warnings.warning_id,0))|BIT_OR(ifnull(1<<entity_warnings.warning_id,0)) as warn FROM entities LEFT JOIN entity_warnings ON entities.id=entity_warnings.entity_id LEFT JOIN entity_roles ON entity_roles.entity_id = entities.id LEFT JOIN entity_role_warnings ON entity_role_warnings.entityrole_id=entity_roles.id GROUP BY entities.id); +CREATE TEMPORARY TABLE entity_warn_tmp as (SELECT entities.id as entity_id, BIT_OR(ifnull(1<<entity_role_warnings.warning_id,0))|BIT_OR(ifnull(1<<entity_warnings.warning_id,0)) as warn FROM entities LEFT JOIN entity_warnings ON entities.id=entity_warnings.entity_id LEFT JOIN entity_roles ON entity_roles.entity_id = entities.id LEFT JOIN entity_role_warnings ON entity_role_warnings.entityrole_id=entity_roles.id GROUP BY entities.id); UPDATE entity_details JOIN entity_warn_tmp ON entity_details.entity_id=entity_warn_tmp.entity_id set entity_details.validator_status=entity_warn_tmp.warn; -CREATE temporary table sirtfi_tmp AS (SELECT entity_id from entity_attributes where entityattributes_dict_id = 76); -CREATE temporary table sirtfi2_tmp AS (SELECT entity_id from entity_attributes where entityattributes_dict_id = 198); - +CREATE TEMPORARY TABLE sirtfi_tmp AS (SELECT entity_id from entity_attributes where entityattributes_dict_id = 76); +CREATE TEMPORARY TABLE sirtfi2_tmp AS (SELECT entity_id from entity_attributes where entityattributes_dict_id = 198); UPDATE entity_details JOIN sirtfi_tmp ON entity_details.entity_id=sirtfi_tmp.entity_id SET entity_details.sirtfi = 1; UPDATE entity_details JOIN sirtfi2_tmp ON entity_details.entity_id=sirtfi2_tmp.entity_id SET entity_details.sirtfi2 = 1; - UPDATE entity_details JOIN entity_warnings ON entity_details.entity_id = entity_warnings.entity_id SET entity_details.sirtfi=2 WHERE entity_warnings.warning_id >= 50 AND entity_warnings.warning_id <= 51; -drop table entity_warn_tmp; -drop table sirtfi_tmp; -drop table sirtfi2_tmp; +DROP TABLE entity_warn_tmp; +DROP TABLE sirtfi_tmp; +DROP TABLE sirtfi2_tmp; DELETE FROM federation_warnings; INSERT INTO federation_warnings (code,warnings) SELECT mds_data.code, bit_or(entity_details.validator_status) FROM mds_data JOIN entities ON mds_data.reg_auth = entities.regauth JOIN entity_details ON entity_details.entity_id = entities.id GROUP BY mds_data.reg_auth; DELETE FROM role_details; -INSERT INTO role_details (entityrole_id, entity_id, roledesc) select id,entity_id,roledesc FROM entity_roles; - -INSERT INTO role_details (entityrole_id, role_display_name) select entity_roles.id, group_concat(concat(entity_info.lang,';',entity_info.value) ORDER BY lang separator '==') FROM entity_roles JOIN entity_info ON entity_roles.id=entityrole_id WHERE entity_info.type='DisplayName' GROUP BY entity_roles.id ON duplicate key UPDATE role_display_name=values(role_display_name); +INSERT INTO role_details (entityrole_id, entity_id, roledesc) SELECT id,entity_id,roledesc FROM entity_roles; -INSERT INTO role_details (entityrole_id, role_service_name) select entity_roles.id, group_concat(concat(entity_info.lang,';',entity_info.value) ORDER BY lang separator '==') FROM entity_roles JOIN entity_info ON entity_roles.id=entityrole_id WHERE entity_info.type='ServiceName' GROUP BY entity_roles.entity_id ON duplicate key UPDATE role_service_name=values(role_service_name); +INSERT INTO role_details (entityrole_id, role_display_name) SELECT entity_roles.id, group_concat(concat(entity_info.lang,';',entity_info.value) ORDER BY lang separator '==') FROM entity_roles JOIN entity_info ON entity_roles.id=entityrole_id WHERE entity_info.type='DisplayName' GROUP BY entity_roles.id ON duplicate key UPDATE role_display_name=VALUES(role_display_name); -INSERT INTO role_details (entityrole_id, scopes) SELECT entityrole_id, group_concat(scope separator '==') FROM entity_scopes GROUP BY entityrole_id ON duplicate key UPDATE scopes=values(scopes); +INSERT INTO role_details (entityrole_id, role_service_name) SELECT entity_roles.id, group_concat(concat(entity_info.lang,';',entity_info.value) ORDER BY lang separator '==') FROM entity_roles JOIN entity_info ON entity_roles.id=entityrole_id WHERE entity_info.type='ServiceName' GROUP BY entity_roles.entity_id ON duplicate key UPDATE role_service_name=VALUES(role_service_name); -INSERT INTO entity_details (entity_id,roles) select entity_id,sum(role_code) AS entity_roles FROM role_details JOIN role_names ON role_details.roledesc = role_names.roledesc GROUP BY entity_id ON duplicate key UPDATE roles=values(roles); +INSERT INTO role_details (entityrole_id, scopes) SELECT entityrole_id, group_concat(scope separator '==') FROM entity_scopes GROUP BY entityrole_id ON duplicate key UPDATE scopes=VALUES(scopes); -DELETE FROM entity_fulltext_index WHERE entity_id NOT IN (select id FROM entities); -DELETE FROM entity_fulltext_index WHERE entity_id in (select id FROM entities WHERE modified = 1); -INSERT INTO entity_fulltext_index (entity_id,txt) select id,ExtractValue(entity_txt,'//*[not(self::ds:X509Certificate) and not(self::mdui:Logo)]') FROM entities WHERE modified=1; +INSERT INTO entity_details (entity_id,roles) SELECT entity_id,sum(role_code) AS entity_roles FROM role_details JOIN role_names ON role_details.roledesc = role_names.roledesc GROUP BY entity_id ON duplicate key UPDATE roles=VALUES(roles); +DELETE FROM entity_fulltext_index WHERE entity_id NOT IN (SELECT id FROM entities); +DELETE FROM entity_fulltext_index WHERE entity_id in (SELECT id FROM entities WHERE modified = 1); +INSERT INTO entity_fulltext_index (entity_id,txt) SELECT id,ExtractValue(entity_txt,'//*[not(self::ds:X509Certificate) and not(self::mdui:Logo)]') FROM entities WHERE modified=1; UPDATE entity_history SET tmp_status=1; INSERT INTO entity_history (entityid,last_seen,status,tmp_status) SELECT entityid,CURRENT_TIMESTAMP,0,0 FROM entities ON DUPLICATE KEY UPDATE last_seen=CURRENT_TIMESTAMP, status=0, tmp_status=0; UPDATE entity_history SET status=1 WHERE tmp_status = 1 AND status = 0;