diff --git a/procedures/query/applyPOV.sql b/procedures/query/applyPOV.sql index aab2eb19ca26c9393f7e972242a7649f1dd762d5..58fed6171869251939cb42fe8fb0df756fe417a6 100644 --- a/procedures/query/applyPOV.sql +++ b/procedures/query/applyPOV.sql @@ -24,7 +24,21 @@ DROP PROCEDURE IF EXISTS db_2_0.applyPOV; DELIMITER // -CREATE PROCEDURE db_2_0.applyPOV(in sourceSet VARCHAR(255), in targetSet VARCHAR(255), in propertiesTable VARCHAR(255), in refIdsTable VARCHAR(255), in o CHAR(4), in vText VARCHAR(255), in vInt INT, in vDouble DOUBLE, in unit_sig BIGINT, in vDoubleStdUnit DOUBLE, in stdUnit_sig BIGINT, in vDateTime VARCHAR(255), in vDateTimeDotNotation VARCHAR(255), in agg CHAR(3), in pname VARCHAR(255)) +CREATE PROCEDURE db_2_0.applyPOV(in sourceSet VARCHAR(255), + in targetSet VARCHAR(255), + in propertiesTable VARCHAR(255), + in refIdsTable VARCHAR(255), + in o CHAR(4), + in vText VARCHAR(255), + in vInt INT, + in vDouble DOUBLE, + in unit_sig BIGINT, + in vDoubleStdUnit DOUBLE, + in stdUnit_sig BIGINT, + in vDateTime VARCHAR(255), + in vDateTimeDotNotation VARCHAR(255), + in agg CHAR(3), + in pname VARCHAR(255)) POV_LABEL: BEGIN DECLARE data TEXT DEFAULT NULL; /*data subselect statement string*/ DECLARE sTextData VARCHAR(20000) DEFAULT NULL; /*SELECT PREFIX for data subselect plus WHERE CLAUSE for text_data*/ @@ -55,6 +69,18 @@ POV_LABEL: BEGIN #-- special case: property IS NOT NULL #-- generate statement parts SET vText = NULL; + /* Union of the following tables: + text_data + enum_data + integer_data + date_data + datetime_data + reference_data + double_data + Notes: + SELECT DISTINCT -> No duplicate values + UNION ALL -> Allow also duplicate values + */ SET sTextData = 'SELECT DISTINCT domain_id, entity_id, property_id FROM `text_data` AS subdata WHERE subdata.value IS NOT NULL UNION ALL SELECT DISTINCT domain_id, entity_id, property_id FROM `enum_data` AS subdata WHERE subdata.value IS NOT NULL UNION ALL SELECT DISTINCT domain_id, entity_id, property_id FROM `integer_data` AS subdata WHERE subdata.value IS NOT NULL UNION ALL SELECT DISTINCT domain_id, entity_id, property_id FROM `double_data` AS subdata WHERE subdata.value IS NOT NULL UNION ALL SELECT DISTINCT domain_id, entity_id, property_id FROM `date_data` AS subdata WHERE subdata.value IS NOT NULL UNION ALL SELECT DISTINCT domain_id, entity_id, property_id FROM `datetime_data` AS subdata WHERE subdata.value IS NOT NULL UNION ALL SELECT DISTINCT domain_id, entity_id, property_id FROM `reference_data` AS subdata WHERE subdata.value IS NOT NULL'; ELSEIF o = "(" or o = "!(" THEN