Skip to content
Snippets Groups Projects
Commit ecd35a21 authored by Henrik tom Wörden's avatar Henrik tom Wörden
Browse files

DOC, STY: in code documentation and styling for readablility

parent e5df395e
No related branches found
No related tags found
3 merge requests!27Release v7.0.2,!25DOC, STY: in code documentation and styling for readablility,!11DRAFT: file system cleanup
Pipeline #44688 failed
This commit is part of merge request !27. Comments created here will be created in the context of that merge request.
...@@ -34,13 +34,16 @@ DELIMITER // ...@@ -34,13 +34,16 @@ DELIMITER //
* ---------- * ----------
* *
* versioned : boolean * versioned : boolean
* If True, sourceSet and targetSet have an _iversion column, otherwise that column will be * If True, sourceSet and targetSet have an _iversion column, otherwise that column will be ignored
* ignored (or only HEAD will be inserted into targetSet). * (or only HEAD will be inserted into targetSet).
TODO description of sourceSet and targetSet is insufficient!
*/ */
CREATE PROCEDURE db_5_0.applyPOV(in sourceSet VARCHAR(255), /* (?) Name of the table that the POV will be applied to. This can be a temporary table. */ CREATE PROCEDURE db_5_0.applyPOV(in sourceSet VARCHAR(255), /* (?) Name of the table that the POV will be applied to. This can be a temporary table. */
in targetSet VARCHAR(255), /* (?) Name of the result table of this POV. */ in targetSet VARCHAR(255), /* (?) Name of the result table of this POV. */
in propertiesTable VARCHAR(255), in propertiesTable VARCHAR(255),
in refIdsTable VARCHAR(255), in refIdsTable VARCHAR(255), /* (?) Name of a tmp table that contains all ids of children of the value interpreted as entity */
in o CHAR(4), /* The operator for this operation. can be one of: in o CHAR(4), /* The operator for this operation. can be one of:
0 check for "equals NULL" 0 check for "equals NULL"
!0 check for "not NULL" !0 check for "not NULL"
...@@ -81,6 +84,10 @@ POV_LABEL: BEGIN ...@@ -81,6 +84,10 @@ POV_LABEL: BEGIN
DECLARE keepTabl VARCHAR(255) DEFAULT NULL; DECLARE keepTabl VARCHAR(255) DEFAULT NULL;
DECLARE existence_op VARCHAR(255) DEFAULT "EXISTS"; DECLARE existence_op VARCHAR(255) DEFAULT "EXISTS";
#-- ######### HINT ##############
#-- first the appropriate statement is created which in the end prepared and executed
#-- #############################
IF o = '->' THEN IF o = '->' THEN
#-- special case: pure reference property #-- special case: pure reference property
call applyRefPOV(sourceSet,targetSet, propertiesTable, refIdsTable, versioned); call applyRefPOV(sourceSet,targetSet, propertiesTable, refIdsTable, versioned);
...@@ -229,6 +236,8 @@ POV_LABEL: BEGIN ...@@ -229,6 +236,8 @@ POV_LABEL: BEGIN
IF o = "!=" AND refIdsTable IS NOT NULL THEN IF o = "!=" AND refIdsTable IS NOT NULL THEN
SET existence_op = "NOT EXISTS"; SET existence_op = "NOT EXISTS";
END IF; END IF;
/* select all entities that reference the entity or a child of the
* value interpreted as ID*/
SET sRefData = IF(vText IS NULL, SET sRefData = IF(vText IS NULL,
' UNION ALL SELECT DISTINCT domain_id, entity_id, property_id FROM `reference_data`', ' UNION ALL SELECT DISTINCT domain_id, entity_id, property_id FROM `reference_data`',
IF(refIdsTable IS NULL, IF(refIdsTable IS NULL,
...@@ -243,6 +252,7 @@ POV_LABEL: BEGIN ...@@ -243,6 +252,7 @@ POV_LABEL: BEGIN
END IF; END IF;
#-- create array of statement parts (and replace null with empty string) (?)
SET data = CONCAT('(',sTextData, SET data = CONCAT('(',sTextData,
IF(sNameData IS NULL, '', sNameData), IF(sNameData IS NULL, '', sNameData),
IF(sEnumData IS NULL, '', sEnumData), IF(sEnumData IS NULL, '', sEnumData),
...@@ -259,6 +269,7 @@ POV_LABEL: BEGIN ...@@ -259,6 +269,7 @@ POV_LABEL: BEGIN
call createTmpTable(keepTabl, versioned); call createTmpTable(keepTabl, versioned);
IF versioned THEN IF versioned THEN
#-- generate statement from statement parts #-- generate statement from statement parts
#-- (versioned section)
SET @stmtPOVkeepTblStr = CONCAT( SET @stmtPOVkeepTblStr = CONCAT(
'INSERT IGNORE INTO `', keepTabl, '` (id, _iversion) SELECT entity_id AS id, _iversion FROM ', data, 'INSERT IGNORE INTO `', keepTabl, '` (id, _iversion) SELECT entity_id AS id, _iversion FROM ', data,
' as data', IF(propertiesTable IS NULL, '', CONCAT( ' as data', IF(propertiesTable IS NULL, '', CONCAT(
...@@ -299,7 +310,14 @@ POV_LABEL: BEGIN ...@@ -299,7 +310,14 @@ POV_LABEL: BEGIN
DEALLOCATE PREPARE stmtPOVkeepTbl; DEALLOCATE PREPARE stmtPOVkeepTbl;
ELSE ELSE
#-- generate statement from statement parts #-- generate statement from statement parts
SET @stmtPOVkeepTblStr = CONCAT('INSERT IGNORE INTO `', keepTabl, '` (id) SELECT DISTINCT entity_id AS id FROM ', data, ' as data', IF(propertiesTable IS NULL, '', CONCAT(' WHERE EXISTS (Select 1 from `', propertiesTable, '` AS prop WHERE prop.id = data.property_id AND (prop.id2=data.entity_id OR prop.id2=0))'))); SET @stmtPOVkeepTblStr = CONCAT(
'INSERT IGNORE INTO `', keepTabl,
'` (id) SELECT DISTINCT entity_id AS id FROM ', data, ' as data',
IF(propertiesTable IS NULL, '',
CONCAT(' WHERE EXISTS (Select 1 from `', propertiesTable,
'` AS prop WHERE prop.id = data.property_id AND
(prop.id2=data.entity_id OR prop.id2=0))')));
#-- (unversioned section)
SET @stmtPOVStr = CONCAT( SET @stmtPOVStr = CONCAT(
IF(targetSet IS NULL, IF(targetSet IS NULL,
......
...@@ -61,6 +61,7 @@ BEGIN ...@@ -61,6 +61,7 @@ BEGIN
call createTmpTable2(propertiesTable); call createTmpTable2(propertiesTable);
-- fill in all properties named "PropertyName" -- fill in all properties named "PropertyName"
-- what are overwrites needed for?
SET @initPOVPropertiesTableStmt1 = CONCAT('INSERT IGNORE INTO `', propertiesTable, '` (id, id2, domain) SELECT property_id, entity_id, domain_id from name_overrides WHERE name = ? UNION ALL SELECT entity_id, domain_id, 0 FROM name_data WHERE value = ?;'); SET @initPOVPropertiesTableStmt1 = CONCAT('INSERT IGNORE INTO `', propertiesTable, '` (id, id2, domain) SELECT property_id, entity_id, domain_id from name_overrides WHERE name = ? UNION ALL SELECT entity_id, domain_id, 0 FROM name_data WHERE value = ?;');
PREPARE stmt FROM @initPOVPropertiesTableStmt1; PREPARE stmt FROM @initPOVPropertiesTableStmt1;
SET @PropertyName = PropertyName; SET @PropertyName = PropertyName;
......
...@@ -24,6 +24,13 @@ ...@@ -24,6 +24,13 @@
DROP PROCEDURE IF EXISTS db_5_0.initSubEntity; DROP PROCEDURE IF EXISTS db_5_0.initSubEntity;
DELIMITER // DELIMITER //
/*
* This procedures composes a table with the ids of all entities with the given
* name and all their children (!!)
* and if provided adds the supplied entity id.
*
* The table name has to be provided.
*/
/* /*
* Initialize a new temporary table by loading an entity and all of its children * Initialize a new temporary table by loading an entity and all of its children
...@@ -45,6 +52,7 @@ BEGIN ...@@ -45,6 +52,7 @@ BEGIN
DECLARE ecount INT DEFAULT 0; DECLARE ecount INT DEFAULT 0;
DECLARE op VARCHAR(255) DEFAULT '='; DECLARE op VARCHAR(255) DEFAULT '=';
IF LOCATE("%", ename) > 0 THEN IF LOCATE("%", ename) > 0 THEN
SET op = "LIKE"; SET op = "LIKE";
END IF; END IF;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment