From f349f8dc4ea4c4ae37a142c3393700b756bd777e Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Thu, 16 Sep 2021 15:25:38 +0200 Subject: [PATCH] EHN: Add new base schema (db_5_0.sql) for installation --- Makefile | 2 +- db_2_0.sql | 326 ------ db_5_0.sql | 975 ++++++++++++++++++ .../update_archive_isa.sql | 6 +- procedures/deleteEntity.sql | 4 +- procedures/deleteEntityProperties.sql | 4 +- procedures/deleteIsaCache.sql | 4 +- procedures/entityACL.sql | 4 +- procedures/entityVersioning.sql | 40 +- procedures/getDependentEntities.sql | 4 +- procedures/getFileIdByPath.sql | 4 +- procedures/getInfo.sql | 2 +- procedures/getRole.sql | 4 +- procedures/initAutoIncrement.sql | 4 +- procedures/insertEntity.sql | 4 +- procedures/insertEntityProperty.sql | 4 +- procedures/insertIsaCache.sql | 4 +- procedures/insertLinCon.sql | 16 +- procedures/insertUser.sql | 4 +- procedures/isSubtype.sql | 4 +- procedures/is_feature_config.sql | 35 + procedures/overrideName.sql | 12 +- procedures/query/applyBackReference.sql | 4 +- procedures/query/applyIDFilter.sql | 4 +- procedures/query/applyPOV.sql | 4 +- procedures/query/applyRefPOV.sql | 4 +- procedures/query/applySAT.sql | 4 +- procedures/query/applyTransactionFilter.sql | 4 +- procedures/query/calcComplementUnion.sql | 4 +- procedures/query/calcDifference.sql | 4 +- procedures/query/calcIntersection.sql | 4 +- procedures/query/calcUnion.sql | 4 +- procedures/query/cleanUpQuery.sql | 4 +- procedures/query/copyTable.sql | 4 +- procedures/query/createTmpTable.sql | 12 +- procedures/query/finishNegationFilter.sql | 4 +- procedures/query/finishSubProperty.sql | 4 +- procedures/query/getAggValueWhereClause.sql | 4 +- procedures/query/getChildren.sql | 4 +- procedures/query/getDateTimeWhereClause.sql | 12 +- procedures/query/getDoubleWhereClause.sql | 4 +- procedures/query/initBackReference.sql | 4 +- procedures/query/initDisjunctionFilter.sql | 8 +- procedures/query/initEntity.sql | 6 +- procedures/query/initPOV.sql | 8 +- procedures/query/initQuery.sql | 4 +- procedures/query/initSubEntity.sql | 4 +- procedures/query/initSubProperty.sql | 4 +- procedures/query/intersectTable.sql | 4 +- procedures/query/makeStmt.sql | 4 +- procedures/query/raiseWarning.sql | 4 +- procedures/query/unit_functions.sql | 8 +- procedures/registerSubdomain.sql | 4 +- procedures/retrieveDatatype.sql | 4 +- procedures/retrieveEntity.sql | 4 +- procedures/retrieveEntityOverrides.sql | 4 +- procedures/retrieveEntityParents.sql | 4 +- procedures/retrieveEntityProperties.sql | 4 +- procedures/retrieveGroup.sql | 4 +- procedures/retrieveSubentity.sql | 4 +- procedures/setPassword.sql | 4 +- procedures/showEntityAutoIncr.sql | 6 +- procedures/updateEntity.sql | 4 +- utils/make_db | 6 +- utils/update_sql_procedures.sh | 2 +- 65 files changed, 1177 insertions(+), 493 deletions(-) delete mode 100644 db_2_0.sql create mode 100644 db_5_0.sql create mode 100644 procedures/is_feature_config.sql diff --git a/Makefile b/Makefile index 3c1ecce..544c0b6 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ # SHELL=/bin/bash -INSTALL_SQL_FILE=db_2_0.sql +INSTALL_SQL_FILE=db_5_0.sql # The hostname, used by testing in the CI pipeline SQL_HOST ?= mysql diff --git a/db_2_0.sql b/db_2_0.sql deleted file mode 100644 index ba9109f..0000000 --- a/db_2_0.sql +++ /dev/null @@ -1,326 +0,0 @@ -/* - * ** header v3.0 - * This file is a part of the CaosDB Project. - * - * Copyright (C) 2018 Research Group Biomedical Physics, - * Max-Planck-Institute for Dynamics and Self-Organization Göttingen - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <https://www.gnu.org/licenses/>. - * - * ** end header - */ -#-- MySQL batch stack to create the CaosDB database structure, v2.0.1 -#-- AUTHOR: Timm Fitschen (timm.fitschen@ds.mpg.de) -#-- DATE: 2015-10-22 -#-- -#-- -#-- - - - - -#-- ************* -#-- Drop database -#-- ************* - -DROP DATABASE IF EXISTS db_2_0; - - - -#-- *************** -#-- Create database -#-- *************** - -CREATE DATABASE IF NOT EXISTS db_2_0 DEFAULT CHARSET=utf8 DEFAULT COLLATE=utf8_unicode_ci; -USE db_2_0; - -#-- *********************** -#-- Create function version -#-- *********************** - -CREATE FUNCTION CaosDBVersion() RETURNS VARCHAR(255) DETERMINISTIC -RETURN 'v2.0.1'; - -#-- ************************ -#-- Create table entities -#-- ************************ - -CREATE TABLE IF NOT EXISTS entities ( -id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique identifier.', -name VARCHAR(255) NULL COMMENT 'Name of the entity.', -description VARCHAR(255) NULL COMMENT 'Description of the entity.', -role ENUM('RECORDTYPE', 'RECORD', 'FILE', 'DOMAIN', 'PROPERTY', 'USER', 'GROUP', 'UNIT', 'DATATYPE') - NULL COMMENT 'Role of the entity', -acl INT UNSIGNED NULL COMMENT 'Access Control List for the entity.' -#-- , CONSTRAINT `ent_acl_acl_id` FOREIGN KEY (`acl`) REFERENCES `acl` (`id`) -) ENGINE=InnoDB; - - -CREATE TABLE IF NOT EXISTS name_overrides ( - domain_id INT UNSIGNED, - entity_id INT UNSIGNED, - name VARCHAR(255), - UNIQUE KEY (domain_id, entity_id), - CONSTRAINT `nameov_d_ent_id` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), - CONSTRAINT `nameov_e_ent_id` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) -) ENGINE=InnoDB; - - -#-- ************************************ -#-- Create table is-a -#-- ************************************ - -CREATE TABLE IF NOT EXISTS isa ( -child INT UNSIGNED NOT NULL COMMENT 'Child', -parent INT UNSIGNED NOT NULL COMMENT 'Parent', -type Enum('INHERITANCE', 'SUBTYPING') - NOT NULL COMMENT 'Type of is-a relation.', -UNIQUE KEY (child, parent), -CONSTRAINT `parent_entity` FOREIGN KEY (`parent`) REFERENCES `entities` (`id`), -CONSTRAINT `child_entity` FOREIGN KEY (`child`) REFERENCES `entities` (`id`) -) ENGINE=InnoDB; - - - -#-- *************************** -#-- Create table reference_data -#-- *************************** - -CREATE TABLE IF NOT EXISTS reference_data ( -domain_id INT UNSIGNED NOT NULL COMMENT 'Domain.', -entity_id INT UNSIGNED NOT NULL COMMENT 'Entity.', -property_id INT UNSIGNED NOT NULL COMMENT 'Property.', -value INT UNSIGNED NULL COMMENT 'Value.', -status Enum('OBLIGATORY', 'RECOMMENDED', 'SUGGESTED', 'FIX', 'REPLACEMENT') - NOT NULL COMMENT 'Status of this statement.', -pidx TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Index of the property.', -INDEX(entity_id,property_id), -CONSTRAINT `ref_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), -CONSTRAINT `ref_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), -CONSTRAINT `ref_property_id_entity` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`), -CONSTRAINT `ref_value_entity` FOREIGN KEY (`value`) REFERENCES `entities` (`id`) -) ENGINE=InnoDB; - - - -#-- ************************* -#-- Create table integer_data -#-- ************************* - -CREATE TABLE IF NOT EXISTS integer_data ( -domain_id INT UNSIGNED NOT NULL COMMENT 'Domain.', -entity_id INT UNSIGNED NOT NULL COMMENT 'Entity.', -property_id INT UNSIGNED NOT NULL COMMENT 'Property.', -value INT NULL COMMENT 'Value.', -status Enum('OBLIGATORY', 'RECOMMENDED', 'SUGGESTED', 'FIX', 'REPLACEMENT') - NOT NULL COMMENT 'Status of this statement.', -pidx TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Index of the property.', -INDEX(domain_id,entity_id), -CONSTRAINT `int_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), -CONSTRAINT `int_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), -CONSTRAINT `int_property_id_entity` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) -) ENGINE=InnoDB; - - - -#-- ************************ -#-- Create table double_data -#-- ************************ - -CREATE TABLE IF NOT EXISTS double_data ( -domain_id INT UNSIGNED NOT NULL COMMENT 'Domain.', -entity_id INT UNSIGNED NOT NULL COMMENT 'Entity.', -property_id INT UNSIGNED NOT NULL COMMENT 'Property.', -value DOUBLE NULL COMMENT 'Value.', -status Enum('OBLIGATORY', 'RECOMMENDED', 'SUGGESTED', 'FIX', 'REPLACEMENT') - NOT NULL COMMENT 'Status of this statement.', -pidx TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Index of the property.', -INDEX(domain_id,entity_id), -CONSTRAINT `dou_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), -CONSTRAINT `dou_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), -CONSTRAINT `dou_property_id_entity` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) -) ENGINE=InnoDB; - - -#-- ************************** -#-- Create table datetime_data -#-- ************************** - -CREATE TABLE IF NOT EXISTS datetime_data ( -domain_id INT UNSIGNED NOT NULL COMMENT 'Domain.', -entity_id INT UNSIGNED NOT NULL COMMENT 'Entity.', -property_id INT UNSIGNED NOT NULL COMMENT 'Property.', -value DATETIME NULL COMMENT 'Value.', -status Enum('OBLIGATORY', 'RECOMMENDED', 'SUGGESTED', 'FIX', 'REPLACEMENT') - NOT NULL COMMENT 'Status of this statement.', -pidx TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Index of the property.', -INDEX(domain_id,entity_id), -CONSTRAINT `dat_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), -CONSTRAINT `dat_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), -CONSTRAINT `dat_property_id_entity` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) -) ENGINE=InnoDB; - - - -#-- ********************** -#-- Create table text_data -#-- ********************** - -CREATE TABLE IF NOT EXISTS text_data ( -domain_id INT UNSIGNED NOT NULL COMMENT 'Domain.', -entity_id INT UNSIGNED NOT NULL COMMENT 'Entity.', -property_id INT UNSIGNED NOT NULL COMMENT 'Property.', -value TEXT NULL COMMENT 'Value.', -status Enum('OBLIGATORY', 'RECOMMENDED', 'SUGGESTED', 'FIX', 'REPLACEMENT') - NOT NULL COMMENT 'Status of this statement.', -pidx TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Index of the property.', -INDEX(domain_id,entity_id), -CONSTRAINT `str_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), -CONSTRAINT `str_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), -CONSTRAINT `str_property_id_entity` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) -) ENGINE=InnoDB; - - -#-- ********************** -#-- Create table data_type -#-- ********************** - -CREATE TABLE IF NOT EXISTS data_type ( -domain_id INT UNSIGNED NOT NULL COMMENT 'Domain.', -entity_id INT UNSIGNED NOT NULL COMMENT 'Entity.', -datatype INT UNSIGNED NOT NULL COMMENT 'Datatype.', -UNIQUE INDEX(domain_id,entity_id), -CONSTRAINT `dt_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), -CONSTRAINT `dt_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), -CONSTRAINT `dt_datatype_id_entity` FOREIGN KEY (`datatype`) REFERENCES `entities` (`id`) -) ENGINE=InnoDB; - - - -#-- ******************* -#-- Create table files -#-- ******************* - -CREATE TABLE IF NOT EXISTS files ( -file_id INT UNSIGNED NOT NULL PRIMARY KEY COMMENT 'The file\'s ID.', -path VARCHAR(255) NOT NULL COMMENT 'Directory of the file.', -size BIGINT UNSIGNED NOT NULL COMMENT 'Size in kB (oktet bytes).', -hash BINARY(64) NOT NULL COMMENT 'SHA-512 Hash of the file.', -CONSTRAINT `fil_file_id_entity` FOREIGN KEY (`file_id`) REFERENCES `entities` (`id`) -) ENGINE=InnoDB; - - - -#-- ****************** -#-- Create table passwords -#-- ****************** - -CREATE TABLE IF NOT EXISTS passwords ( -entity_id INT UNSIGNED NOT NULL PRIMARY KEY COMMENT 'User ID.', -password VARCHAR(255) NOT NULL COMMENT 'Password.', -CONSTRAINT `use_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) -) ENGINE=InnoDB; - -#-- ******************* -#-- Create table groups -#-- ******************* - -CREATE TABLE IF NOT EXISTS groups ( -user_id INT UNSIGNED NOT NULL, -group_id INT UNSIGNED NOT NULL, -UNIQUE KEY(user_id, group_id) -, CONSTRAINT `user_id_entities_id` FOREIGN KEY (`user_id`) REFERENCES `entities` (`id`) -, CONSTRAINT `group_id_entities_id` FOREIGN KEY (`group_id`) REFERENCES `entities` (`id`) -) ENGINE=InnoDB; - - -#-- ******************** -#-- Create table history -#-- ******************** - -CREATE TABLE IF NOT EXISTS transaction_log ( -transaction VARCHAR(255) NOT NULL COMMENT 'Transaction.', -user_id INT UNSIGNED NOT NULL COMMENT 'User.', -date INT NOT NULL COMMENT 'Date of transaction.', -time MEDIUMINT UNSIGNED NOT NULL COMMENT 'Time of transaction.', -ns INT UNSIGNED NULL COMMENT 'Nanosecond part of transaction time.', -entity_id INT UNSIGNED NOT NULL COMMENT 'Entity ID.', -INDEX (entity_id), INDEX (date, time) -) ENGINE=InnoDB; - - - -#-- ****************** -#-- Create table rules -#-- ****************** - -CREATE TABLE IF NOT EXISTS rules ( -domain_id INT UNSIGNED NOT NULL, -entity_id INT UNSIGNED NOT NULL, -transaction ENUM('INSERT', 'RETRIEVE', 'UPDATE', 'DELETE') NOT NULL, -criterion VARCHAR(255) NOT NULL, -#--ENUM('UNIT_PRESENT', 'ROLE_PRESENT', 'NAME_PRESENT', 'DESC_PRESENT', 'REFID_PRESENT', 'REFID_VALID', 'REFID_ISA_PAR_REFID', 'PROP_PRESENT') NOT NULL, -modus ENUM('MUST', 'SHOULD', 'SHOULDNT', 'MUSTNOT') NOT NULL, -CONSTRAINT `rule_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), -CONSTRAINT `rule_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) -) ENGINE=InnoDB; - - -#-- magic stuff -ALTER TABLE entities AUTO_INCREMENT=100; - -INSERT INTO entities (id, name, description, role, acl) VALUES (1,'DOMAIN', 'The default domain.', 'domain', 0); -UPDATE entities SET id=0 where name='domain'; -INSERT INTO entities (id, name, description, role, acl) VALUES (1,'RECORDTYPE', 'The default recordtype.', 'recordtype', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (2,'RECORD', 'The default record.', 'record', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (3,'FILE', 'The default file.', 'file', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (4,'PROPERTY', 'The default property.', 'PROPERTY', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (5,'USER', 'The default user.', 'USER', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (6,'UNIT', 'The default unit.', 'UNIT', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (7,'DATATYPE', 'The default datatype.', 'DATATYPE', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (8,'GROUP', 'The default group.', 'GROUP', 0); - - - -INSERT INTO entities (id, name, description, role, acl) VALUES (11,'REFERENCE', 'The default reference data type.', 'DATATYPE', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (12,'INTEGER', 'The default integer data type.', 'DATATYPE', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (13,'DOUBLE', 'The default double data type.', 'DATATYPE', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (14,'TEXT', 'The default text data type.', 'DATATYPE', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (15,'DATETIME', 'The default datetime data type.', 'DATATYPE', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (16,'TIMESPAN', 'The default timespan data type.', 'DATATYPE', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (17,'FILE', 'The default file reference data type.', 'DATATYPE', 0); -#--INSERT INTO data_type (domain_id, entity_id, datatype) VALUES (0, 17, 17); -#--INSERT INTO data_type (domain_id, entity_id, datatype) VALUES (0, 11, 11); - -INSERT INTO entities (id, name, description, role, acl) VALUES (20,'name', 'Name of an entity', 'PROPERTY', 0); -INSERT INTO data_type (domain_id, entity_id, datatype) VALUES (0, 20, 14); -INSERT INTO entities (id, name, description, role, acl) VALUES (21,'unit', 'Unit of an entity.', 'PROPERTY', 0); -INSERT INTO data_type (domain_id, entity_id, datatype) VALUES (0, 21, 14); -INSERT INTO entities (id, name, description, role, acl) VALUES (22,'exponent', 'Unit prefix exponent of an entity.', 'PROPERTY', 0); -INSERT INTO data_type (domain_id, entity_id, datatype) VALUES (0, 22, 12); -INSERT INTO entities (id, name, description, role, acl) VALUES (24,'description', 'Description of an entity.', 'PROPERTY', 0); -INSERT INTO data_type (domain_id, entity_id, datatype) VALUES (0, 24, 14); -INSERT INTO entities (id, name, description, role, acl) VALUES (25,'refid', 'Refid of an entity.', 'PROPERTY', 0); -INSERT INTO data_type (domain_id, entity_id, datatype) VALUES (0, 25, 11); - -#--INSERT INTO entities (id, name, description, role, acl) VALUES (23,'role', 'Role of an entity.', 'PROPERTY', 0); - -INSERT INTO entities (id, name, description, role, acl) VALUES (50,'SQLITE', 'The SQLite file data type.', 'DATATYPE', 0); - -#-- USER STUFF -INSERT INTO entities (id, name, description, role, acl) VALUES (98, 'heartdb', 'The anonymous user.', 'USER', 0); -INSERT INTO entities (id, name, description, role, acl) VALUES (99, 'administration', 'The admin users.', 'GROUP', 0); - -INSERT INTO passwords (entity_id, password) VALUES (98, '37d7bd8a833261b4e4653644ee0a065f522b92b3738ca9ae2cb43a83844bf352c4a59c386a44965997a508c61988c9484c093775027425091d6d3d435c3c0e0c'); -INSERT INTO passwords (entity_id, password) VALUES (99, '37d7bd8a833261b4e4653644ee0a065f522b92b3738ca9ae2cb43a83844bf352c4a59c386a44965997a508c61988c9484c093775027425091d6d3d435c3c0e0c'); diff --git a/db_5_0.sql b/db_5_0.sql new file mode 100644 index 0000000..d369c43 --- /dev/null +++ b/db_5_0.sql @@ -0,0 +1,975 @@ +/* + * This file is a part of the CaosDB Project. + * + * Copyright (C) 2018 Research Group Biomedical Physics, + * Max-Planck-Institute for Dynamics and Self-Organization Göttingen + * Copyright (C) 2021 IndiScale GmbH <www.indiscale.com> + * Copyright (C) 2021 Timm Fitschen <t.fitschen@indiscale.com> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + * + */ +#-- MySQL batch stack to create the CaosDB database structure, v5.0.0 +#-- AUTHOR: Timm Fitschen <t.fitsche@indiscale.com> +#-- DATE: 2021-09-15 + + + + + +#-- ************* +#-- Drop database +#-- ************* + +DROP DATABASE IF EXISTS db_5_0; + +#-- *************** +#-- Create database +#-- *************** + +CREATE DATABASE IF NOT EXISTS db_5_0 DEFAULT CHARSET=utf8 DEFAULT COLLATE=utf8_unicode_ci; +USE db_5_0; + +#-- *********************** +#-- Create function version +#-- *********************** + +CREATE FUNCTION CaosDBVersion() RETURNS VARCHAR(255) DETERMINISTIC +RETURN 'v5.0.0'; + +#-- ************* +#-- Create tables +#-- ************* + +-- +-- Table structure for table `transactions` +-- + +DROP TABLE IF EXISTS `transactions`; +CREATE TABLE `transactions` ( + `srid` varbinary(255) NOT NULL, + `username` varbinary(255) NOT NULL, + `realm` varbinary(255) NOT NULL, + `seconds` bigint(20) unsigned NOT NULL, + `nanos` int(10) unsigned NOT NULL, + PRIMARY KEY (`srid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `transactions` +-- + +LOCK TABLES `transactions` WRITE; +INSERT INTO `transactions` VALUES ('cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e','administration','CaosDB',0,0); +UNLOCK TABLES; + +-- +-- Table structure for table `entity_acl` +-- + +DROP TABLE IF EXISTS `entity_acl`; +CREATE TABLE `entity_acl` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `acl` varbinary(65525) NOT NULL, + PRIMARY KEY (`id`), + KEY `entity_acl_acl` (`acl`(3072)) +) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `entity_acl` +-- + +LOCK TABLES `entity_acl` WRITE; +INSERT INTO `entity_acl` (`acl`) VALUES (''); +UPDATE `entity_acl` SET id = 0; +UNLOCK TABLES; + +-- +-- Table structure for table `entities` +-- + +DROP TABLE IF EXISTS `entities`; +CREATE TABLE `entities` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Unique identifier.', + `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `role` enum('RECORDTYPE','RECORD','FILE','DOMAIN','PROPERTY','DATATYPE','ROLE','QUERYTEMPLATE') COLLATE utf8_unicode_ci NOT NULL, + `acl` int(10) unsigned DEFAULT NULL COMMENT 'Access Control List for the entity.', + PRIMARY KEY (`id`), + KEY `entity_entity_acl` (`acl`), + CONSTRAINT `entity_entity_acl` FOREIGN KEY (`acl`) REFERENCES `entity_acl` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +LOCK TABLES `entities` WRITE; +INSERT INTO `entities` VALUES (100,'The default domain.','ROLE',0),(1,'The default recordtype.','ROLE',0),(2,'The default record.','ROLE',0),(3,'The default file.','ROLE',0),(4,'The default property.','ROLE',0),(7,'The default datatype.','ROLE',0),(8,'The QueryTemplate role.','ROLE',0),(11,'The default reference data type.','DATATYPE',0),(12,'The default integer data type.','DATATYPE',0),(13,'The default double data type.','DATATYPE',0),(14,'The default text data type.','DATATYPE',0),(15,'The default datetime data type.','DATATYPE',0),(16,'The default timespan data type.','DATATYPE',0),(17,'The default file reference data type.','DATATYPE',0),(18,'The defaulf boolean data type','DATATYPE',0),(20,'Name of an entity','PROPERTY',0),(21,'Unit of an entity.','PROPERTY',0),(24,'Description of an entity.','PROPERTY',0),(50,'The SQLite file data type.','DATATYPE',0),(99,NULL,'RECORDTYPE',0); +UPDATE `entities` SET id = 0 WHERE id = 100; +UNLOCK TABLES; + +-- +-- Table structure for table `entity_version` +-- + +DROP TABLE IF EXISTS `entity_version`; +CREATE TABLE `entity_version` ( + `entity_id` int(10) unsigned NOT NULL, + `hash` varbinary(255) DEFAULT NULL, + `version` varbinary(255) NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + `_ipparent` int(10) unsigned DEFAULT NULL, + `srid` varbinary(255) NOT NULL, + PRIMARY KEY (`entity_id`,`_iversion`), + UNIQUE KEY `entity_version-e-v` (`entity_id`,`version`), + KEY `srid` (`srid`), + CONSTRAINT `entity_version_ibfk_1` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `entity_version_ibfk_2` FOREIGN KEY (`srid`) REFERENCES `transactions` (`srid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `entity_version` +-- + +LOCK TABLES `entity_version` WRITE; +INSERT INTO `entity_version` VALUES (0,NULL,'17a614da482783fc501c21a98a83d8b44d8d3f9b',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(1,NULL,'84f03d370353770d71e7dc07f9f00c263f026e22',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(2,NULL,'2d2faa9bdbc4cd48f3fcaac54c52668b7c5f1f1c',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(3,NULL,'fa65b9b783c36ff694d9212df96d05e637fd9ecb',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(4,NULL,'07de7952f1651ba3b69117d285ccf28c5ca7d956',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(7,NULL,'2b0276af86c02ac33ceebaaea2a71497a72b2ec1',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(8,NULL,'a5b6b050ccc5ac04fd7078c8dfabad9fd5b59b6b',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(11,NULL,'da8e07ee8867b385db7e553bc8da0d8875deeef1',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(12,NULL,'f572e439aac441e4e58773316dbba38ae6404907',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(13,NULL,'2f9537d5434141dc620487ea7ecef8ef8c6915dd',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(14,NULL,'9658a375370fa8a14026723ed25ea8bffebf4f6b',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(15,NULL,'04bff2ab282998c327e8f5f460db277e5a3d58fb',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(16,NULL,'d3627fe225cfa2381f690de434728d0f546cc8bf',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(17,NULL,'7aa80399376a1912fdc2a996056cab71c1d8c42d',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(18,NULL,'2ef88447ea48cfb21f11cbb2583f86d3d2cda088',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(20,NULL,'75462fb8fe9b2c696cbb9c5e82038c32e6b814c4',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(21,NULL,'5432f3086adbded25101e36d11e3d1948611c49c',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(24,NULL,'29a85dbc0ca204bdb436261cbb429415e2485344',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(50,NULL,'bd511fbff4e2429ded9d022bcd430f0fdad20c5f',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'),(99,NULL,'be28e81a7391f96a343f6e6c082d73da5b8ce66b',1,NULL,'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'); +UNLOCK TABLES; + +-- +-- Table structure for table `archive_collection_type` +-- + +DROP TABLE IF EXISTS `archive_collection_type`; +CREATE TABLE `archive_collection_type` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `collection` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + UNIQUE KEY `archive_collection_type-d-e-p-v` (`domain_id`,`entity_id`,`property_id`,`_iversion`), + KEY `domain_id` (`domain_id`,`entity_id`,`_iversion`), + KEY `domain_id_2` (`domain_id`,`_iversion`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + CONSTRAINT `archive_collection_type_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_collection_type_ibfk_2` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_collection_type_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_data_type` +-- + +DROP TABLE IF EXISTS `archive_data_type`; +CREATE TABLE `archive_data_type` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `datatype` int(10) unsigned NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + UNIQUE KEY `archive_data_type-d-e-p-v` (`domain_id`,`entity_id`,`property_id`,`_iversion`), + KEY `domain_id` (`domain_id`,`entity_id`,`_iversion`), + KEY `domain_id_2` (`domain_id`,`_iversion`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + KEY `datatype` (`datatype`), + CONSTRAINT `archive_data_type_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_data_type_ibfk_2` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_data_type_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_data_type_ibfk_4` FOREIGN KEY (`datatype`) REFERENCES `entities` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_date_data` +-- + +DROP TABLE IF EXISTS `archive_date_data`; +CREATE TABLE `archive_date_data` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `value` int(11) NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX') COLLATE utf8_unicode_ci NOT NULL, + `pidx` int(10) unsigned NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + KEY `domain_id` (`domain_id`,`entity_id`,`_iversion`), + KEY `domain_id_2` (`domain_id`,`_iversion`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + CONSTRAINT `archive_date_data_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_date_data_ibfk_2` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_date_data_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_datetime_data` +-- + +DROP TABLE IF EXISTS `archive_datetime_data`; +CREATE TABLE `archive_datetime_data` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `value` bigint(20) NOT NULL, + `value_ns` int(10) unsigned DEFAULT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX') COLLATE utf8_unicode_ci NOT NULL, + `pidx` int(10) unsigned NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + KEY `domain_id` (`domain_id`,`entity_id`,`_iversion`), + KEY `domain_id_2` (`domain_id`,`_iversion`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + CONSTRAINT `archive_datetime_data_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_datetime_data_ibfk_2` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_datetime_data_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_desc_overrides` +-- + +DROP TABLE IF EXISTS `archive_desc_overrides`; +CREATE TABLE `archive_desc_overrides` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `description` text COLLATE utf8_unicode_ci NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + UNIQUE KEY `archive_desc_overrides-d-e-p-v` (`domain_id`,`entity_id`,`property_id`,`_iversion`), + KEY `domain_id` (`domain_id`,`entity_id`,`_iversion`), + KEY `domain_id_2` (`domain_id`,`_iversion`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + CONSTRAINT `archive_desc_overrides_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_desc_overrides_ibfk_2` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_desc_overrides_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_double_data` +-- + +DROP TABLE IF EXISTS `archive_double_data`; +CREATE TABLE `archive_double_data` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `value` double NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX') COLLATE utf8_unicode_ci NOT NULL, + `pidx` int(10) unsigned NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + `unit_sig` bigint(20) DEFAULT NULL, + KEY `domain_id` (`domain_id`,`entity_id`,`_iversion`), + KEY `domain_id_2` (`domain_id`,`_iversion`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + CONSTRAINT `archive_double_data_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_double_data_ibfk_2` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_double_data_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_entities` +-- + +DROP TABLE IF EXISTS `archive_entities`; +CREATE TABLE `archive_entities` ( + `id` int(10) unsigned NOT NULL, + `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + `role` enum('RECORDTYPE','RECORD','FILE','DOMAIN','PROPERTY','DATATYPE','ROLE','QUERYTEMPLATE') COLLATE utf8_unicode_ci NOT NULL, + `acl` int(10) unsigned DEFAULT NULL, + `_iversion` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`,`_iversion`), + KEY `acl` (`acl`), + CONSTRAINT `archive_entities_ibfk_1` FOREIGN KEY (`id`, `_iversion`) REFERENCES `entity_version` (`entity_id`, `_iversion`) ON DELETE CASCADE, + CONSTRAINT `archive_entities_ibfk_2` FOREIGN KEY (`acl`) REFERENCES `entity_acl` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_enum_data` +-- + +DROP TABLE IF EXISTS `archive_enum_data`; +CREATE TABLE `archive_enum_data` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `value` varbinary(255) NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX') COLLATE utf8_unicode_ci NOT NULL, + `pidx` int(10) unsigned NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + KEY `domain_id` (`domain_id`,`entity_id`,`_iversion`), + KEY `domain_id_2` (`domain_id`,`_iversion`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + CONSTRAINT `archive_enum_data_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_enum_data_ibfk_2` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_enum_data_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_files` +-- + +DROP TABLE IF EXISTS `archive_files`; +CREATE TABLE `archive_files` ( + `file_id` int(10) unsigned NOT NULL, + `path` text COLLATE utf8_unicode_ci NOT NULL, + `size` bigint(20) unsigned NOT NULL, + `hash` binary(64) DEFAULT NULL, + `_iversion` int(10) unsigned NOT NULL, + PRIMARY KEY (`file_id`,`_iversion`), + CONSTRAINT `archive_files_ibfk_1` FOREIGN KEY (`file_id`, `_iversion`) REFERENCES `entity_version` (`entity_id`, `_iversion`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_integer_data` +-- + +DROP TABLE IF EXISTS `archive_integer_data`; +CREATE TABLE `archive_integer_data` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `value` bigint(20) NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX') COLLATE utf8_unicode_ci NOT NULL, + `pidx` int(10) unsigned NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + `unit_sig` bigint(20) DEFAULT NULL, + KEY `domain_id` (`domain_id`,`entity_id`,`_iversion`), + KEY `domain_id_2` (`domain_id`,`_iversion`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + CONSTRAINT `archive_integer_data_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_integer_data_ibfk_2` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_integer_data_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_isa` +-- + +DROP TABLE IF EXISTS `archive_isa`; +CREATE TABLE `archive_isa` ( + `child` int(10) unsigned NOT NULL, + `child_iversion` int(10) unsigned NOT NULL, + `parent` int(10) unsigned NOT NULL, + `direct` tinyint(1) DEFAULT 1, + KEY `parent` (`parent`), + KEY `child` (`child`,`child_iversion`), + CONSTRAINT `archive_isa_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_isa_ibfk_2` FOREIGN KEY (`child`, `child_iversion`) REFERENCES `entity_version` (`entity_id`, `_iversion`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_name_data` +-- + +DROP TABLE IF EXISTS `archive_name_data`; +CREATE TABLE `archive_name_data` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `value` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX') COLLATE utf8_unicode_ci NOT NULL, + `pidx` int(10) unsigned NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + KEY `domain_id` (`domain_id`,`entity_id`,`_iversion`), + KEY `domain_id_2` (`domain_id`,`_iversion`), + KEY `value` (`value`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + CONSTRAINT `archive_name_data_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_name_data_ibfk_2` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_name_data_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_name_overrides` +-- + +DROP TABLE IF EXISTS `archive_name_overrides`; +CREATE TABLE `archive_name_overrides` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + UNIQUE KEY `archive_name_overrides-d-e-p-v` (`domain_id`,`entity_id`,`property_id`,`_iversion`), + KEY `domain_id` (`domain_id`,`entity_id`,`_iversion`), + KEY `domain_id_2` (`domain_id`,`_iversion`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + CONSTRAINT `archive_name_overrides_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_name_overrides_ibfk_2` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_name_overrides_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_null_data` +-- + +DROP TABLE IF EXISTS `archive_null_data`; +CREATE TABLE `archive_null_data` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX') COLLATE utf8_unicode_ci NOT NULL, + `pidx` int(10) unsigned NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + KEY `domain_id` (`domain_id`,`entity_id`,`_iversion`), + KEY `domain_id_2` (`domain_id`,`_iversion`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + CONSTRAINT `archive_null_data_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_null_data_ibfk_2` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_null_data_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_query_template_def` +-- + +DROP TABLE IF EXISTS `archive_query_template_def`; +CREATE TABLE `archive_query_template_def` ( + `id` int(10) unsigned NOT NULL, + `definition` mediumtext COLLATE utf8_unicode_ci NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`,`_iversion`), + CONSTRAINT `archive_query_template_def_ibfk_1` FOREIGN KEY (`id`, `_iversion`) REFERENCES `entity_version` (`entity_id`, `_iversion`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_reference_data` +-- + +DROP TABLE IF EXISTS `archive_reference_data`; +CREATE TABLE `archive_reference_data` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `value` int(10) unsigned NOT NULL, + `value_iversion` int(10) unsigned DEFAULT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX','REPLACEMENT') COLLATE utf8_unicode_ci NOT NULL, + `pidx` int(10) unsigned NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + KEY `domain_id` (`domain_id`,`entity_id`,`_iversion`), + KEY `domain_id_2` (`domain_id`,`_iversion`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + KEY `value` (`value`), + CONSTRAINT `archive_reference_data_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_reference_data_ibfk_2` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_reference_data_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_reference_data_ibfk_4` FOREIGN KEY (`value`) REFERENCES `entities` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `archive_text_data` +-- + +DROP TABLE IF EXISTS `archive_text_data`; +CREATE TABLE `archive_text_data` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `value` text COLLATE utf8_unicode_ci NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX') COLLATE utf8_unicode_ci NOT NULL, + `pidx` int(10) unsigned NOT NULL, + `_iversion` int(10) unsigned NOT NULL, + KEY `domain_id` (`domain_id`,`entity_id`,`_iversion`), + KEY `domain_id_2` (`domain_id`,`_iversion`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + CONSTRAINT `archive_text_data_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_text_data_ibfk_2` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE, + CONSTRAINT `archive_text_data_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `collection_type` +-- + +DROP TABLE IF EXISTS `collection_type`; +CREATE TABLE `collection_type` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `collection` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + UNIQUE KEY `collection_type-d-e-p` (`domain_id`,`entity_id`,`property_id`), + KEY `domain_id` (`domain_id`,`entity_id`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + CONSTRAINT `collection_type_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), + CONSTRAINT `collection_type_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), + CONSTRAINT `collection_type_property_id_entity` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `data_type` +-- + +DROP TABLE IF EXISTS `data_type`; +CREATE TABLE `data_type` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `datatype` int(10) unsigned NOT NULL, + UNIQUE KEY `datatype_ukey` (`domain_id`,`entity_id`,`property_id`), + KEY `name_ov_dom_ent_idx` (`domain_id`,`entity_id`), + KEY `datatype_forkey_ent` (`entity_id`), + KEY `datatype_forkey_pro` (`property_id`), + KEY `datatype_forkey_type` (`datatype`), + CONSTRAINT `datatype_forkey_dom` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), + CONSTRAINT `datatype_forkey_ent` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), + CONSTRAINT `datatype_forkey_pro` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`), + CONSTRAINT `datatype_forkey_type` FOREIGN KEY (`datatype`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- TODO Data for table `data_type` +-- + +LOCK TABLES `data_type` WRITE; +INSERT INTO `data_type` VALUES (0,0,20,14),(0,0,21,14),(0,0,24,14); +UNLOCK TABLES; + +-- +-- Table structure for table `date_data` +-- + +DROP TABLE IF EXISTS `date_data`; +CREATE TABLE `date_data` ( + `domain_id` int(10) unsigned DEFAULT NULL, + `entity_id` int(10) unsigned DEFAULT NULL, + `property_id` int(10) unsigned DEFAULT NULL, + `value` int(11) NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX') COLLATE utf8_unicode_ci DEFAULT NULL, + `pidx` int(10) unsigned NOT NULL DEFAULT 0, + KEY `date_data_dom_ent_idx` (`domain_id`,`entity_id`), + KEY `date_ov_forkey_ent` (`entity_id`), + KEY `date_ov_forkey_pro` (`property_id`), + CONSTRAINT `date_ov_forkey_dom` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), + CONSTRAINT `date_ov_forkey_ent` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), + CONSTRAINT `date_ov_forkey_pro` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `datetime_data` +-- + +DROP TABLE IF EXISTS `datetime_data`; +CREATE TABLE `datetime_data` ( + `domain_id` int(10) unsigned NOT NULL COMMENT 'Domain.', + `entity_id` int(10) unsigned NOT NULL COMMENT 'Entity.', + `property_id` int(10) unsigned NOT NULL COMMENT 'Property.', + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX','REPLACEMENT') COLLATE utf8_unicode_ci NOT NULL COMMENT 'Status of this statement.', + `pidx` int(10) unsigned NOT NULL DEFAULT 0, + `value_ns` int(10) unsigned DEFAULT NULL, + `value` bigint(20) NOT NULL, + KEY `domain_id` (`domain_id`,`entity_id`), + KEY `dat_entity_id_entity` (`entity_id`), + KEY `dat_property_id_entity` (`property_id`), + CONSTRAINT `dat_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), + CONSTRAINT `dat_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), + CONSTRAINT `dat_property_id_entity` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `desc_overrides` +-- + +DROP TABLE IF EXISTS `desc_overrides`; +CREATE TABLE `desc_overrides` ( + `domain_id` int(10) unsigned DEFAULT NULL, + `entity_id` int(10) unsigned DEFAULT NULL, + `property_id` int(10) unsigned DEFAULT NULL, + `description` text COLLATE utf8_unicode_ci DEFAULT NULL, + UNIQUE KEY `desc_ov_ukey` (`domain_id`,`entity_id`,`property_id`), + KEY `desc_ov_dom_ent_idx` (`domain_id`,`entity_id`), + KEY `desc_ov_forkey_ent` (`entity_id`), + KEY `desc_ov_forkey_pro` (`property_id`), + CONSTRAINT `desc_ov_forkey_dom` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), + CONSTRAINT `desc_ov_forkey_ent` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), + CONSTRAINT `desc_ov_forkey_pro` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `double_data` +-- + +DROP TABLE IF EXISTS `double_data`; +CREATE TABLE `double_data` ( + `domain_id` int(10) unsigned NOT NULL COMMENT 'Domain.', + `entity_id` int(10) unsigned NOT NULL COMMENT 'Entity.', + `property_id` int(10) unsigned NOT NULL COMMENT 'Property.', + `value` double NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX','REPLACEMENT') COLLATE utf8_unicode_ci NOT NULL COMMENT 'Status of this statement.', + `pidx` int(10) unsigned NOT NULL DEFAULT 0, + `unit_sig` bigint(20) DEFAULT NULL, + KEY `domain_id` (`domain_id`,`entity_id`), + KEY `dou_entity_id_entity` (`entity_id`), + KEY `dou_property_id_entity` (`property_id`), + CONSTRAINT `dou_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), + CONSTRAINT `dou_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), + CONSTRAINT `dou_property_id_entity` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `enum_data` +-- + +DROP TABLE IF EXISTS `enum_data`; +CREATE TABLE `enum_data` ( + `domain_id` int(10) unsigned DEFAULT NULL, + `entity_id` int(10) unsigned DEFAULT NULL, + `property_id` int(10) unsigned DEFAULT NULL, + `value` varbinary(255) NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX') COLLATE utf8_unicode_ci DEFAULT NULL, + `pidx` int(10) unsigned NOT NULL DEFAULT 0, + KEY `enum_ov_dom_ent_idx` (`domain_id`,`entity_id`), + KEY `enum_ov_forkey_ent` (`entity_id`), + KEY `enum_ov_forkey_pro` (`property_id`), + CONSTRAINT `enum_ov_forkey_dom` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), + CONSTRAINT `enum_ov_forkey_ent` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), + CONSTRAINT `enum_ov_forkey_pro` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `feature_config` +-- + +DROP TABLE IF EXISTS `feature_config`; +CREATE TABLE `feature_config` ( + `_key` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `_value` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + PRIMARY KEY (`_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `feature_config` +-- + +LOCK TABLES `feature_config` WRITE; +INSERT INTO `feature_config` VALUES ('ENTITY_VERSIONING','ENABLED'); +UNLOCK TABLES; + +-- +-- Table structure for table `files` +-- + +DROP TABLE IF EXISTS `files`; +CREATE TABLE `files` ( + `file_id` int(10) unsigned NOT NULL COMMENT 'The file''s ID.', + `path` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Directory of the file.', + `size` bigint(20) unsigned NOT NULL COMMENT 'Size in kB (oktet bytes).', + `hash` binary(64) DEFAULT NULL, + `checked_timestamp` bigint(20) NOT NULL DEFAULT 0, + PRIMARY KEY (`file_id`), + CONSTRAINT `fil_file_id_entity` FOREIGN KEY (`file_id`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `integer_data` +-- + +DROP TABLE IF EXISTS `integer_data`; +CREATE TABLE `integer_data` ( + `domain_id` int(10) unsigned NOT NULL COMMENT 'Domain.', + `entity_id` int(10) unsigned NOT NULL COMMENT 'Entity.', + `property_id` int(10) unsigned NOT NULL COMMENT 'Property.', + `value` bigint(20) NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX','REPLACEMENT') COLLATE utf8_unicode_ci NOT NULL COMMENT 'Status of this statement.', + `pidx` int(10) unsigned NOT NULL DEFAULT 0, + `unit_sig` bigint(20) DEFAULT NULL, + KEY `domain_id` (`domain_id`,`entity_id`), + KEY `int_entity_id_entity` (`entity_id`), + KEY `int_property_id_entity` (`property_id`), + CONSTRAINT `int_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), + CONSTRAINT `int_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), + CONSTRAINT `int_property_id_entity` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `isa_cache` +-- + +DROP TABLE IF EXISTS `isa_cache`; +CREATE TABLE `isa_cache` ( + `child` int(10) unsigned NOT NULL, + `parent` int(10) unsigned NOT NULL, + `rpath` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`child`,`parent`,`rpath`), + KEY `isa_cache_parent_entity` (`parent`), + CONSTRAINT `isa_cache_child_entity` FOREIGN KEY (`child`) REFERENCES `entities` (`id`), + CONSTRAINT `isa_cache_parent_entity` FOREIGN KEY (`parent`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- TODO Table structure for table `logging` +-- + +-- DROP TABLE IF EXISTS `logging`; +-- CREATE TABLE `logging` ( +-- `level` int(11) NOT NULL, +-- `logger` varchar(255) COLLATE utf8_unicode_ci NOT NULL, +-- `message` mediumtext COLLATE utf8_unicode_ci NOT NULL, +-- `millis` bigint(20) NOT NULL, +-- `logRecord` blob NOT NULL +-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `name_data` +-- + +DROP TABLE IF EXISTS `name_data`; +CREATE TABLE `name_data` ( + `domain_id` int(10) unsigned NOT NULL, + `entity_id` int(10) unsigned NOT NULL, + `property_id` int(10) unsigned NOT NULL, + `value` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX','REPLACEMENT') COLLATE utf8_unicode_ci NOT NULL, + `pidx` int(10) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `domain_id_2` (`domain_id`,`entity_id`,`property_id`), + KEY `domain_id` (`domain_id`,`entity_id`), + KEY `entity_id` (`entity_id`), + KEY `property_id` (`property_id`), + KEY `value` (`value`), + CONSTRAINT `name_data_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), + CONSTRAINT `name_data_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), + CONSTRAINT `name_data_property_id_entity` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `name_data` +-- + +LOCK TABLES `name_data` WRITE; +INSERT INTO `name_data` VALUES (0,0,20,'DOMAIN','FIX',0),(0,1,20,'RECORDTYPE','FIX',0),(0,2,20,'RECORD','FIX',0),(0,3,20,'FILE','FIX',0),(0,4,20,'PROPERTY','FIX',0),(0,7,20,'DATATYPE','FIX',0),(0,8,20,'QUERYTEMPLATE','FIX',0),(0,11,20,'REFERENCE','FIX',0),(0,12,20,'INTEGER','FIX',0),(0,13,20,'DOUBLE','FIX',0),(0,14,20,'TEXT','FIX',0),(0,15,20,'DATETIME','FIX',0),(0,16,20,'TIMESPAN','FIX',0),(0,17,20,'FILE','FIX',0),(0,18,20,'BOOLEAN','FIX',0),(0,20,20,'name','FIX',0),(0,21,20,'unit','FIX',0),(0,24,20,'description','FIX',0),(0,50,20,'SQLITE','FIX',0); +UNLOCK TABLES; + +-- +-- Table structure for table `name_overrides` +-- + +DROP TABLE IF EXISTS `name_overrides`; +CREATE TABLE `name_overrides` ( + `domain_id` int(10) unsigned DEFAULT NULL, + `entity_id` int(10) unsigned DEFAULT NULL, + `property_id` int(10) unsigned DEFAULT NULL, + `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + UNIQUE KEY `name_ov_ukey` (`domain_id`,`entity_id`,`property_id`), + KEY `name_ov_dom_ent_idx` (`domain_id`,`entity_id`), + KEY `name_ov_forkey_ent` (`entity_id`), + KEY `name_ov_forkey_pro` (`property_id`), + CONSTRAINT `name_ov_forkey_dom` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), + CONSTRAINT `name_ov_forkey_ent` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), + CONSTRAINT `name_ov_forkey_pro` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `null_data` +-- + +DROP TABLE IF EXISTS `null_data`; +CREATE TABLE `null_data` ( + `domain_id` int(10) unsigned DEFAULT NULL, + `entity_id` int(10) unsigned DEFAULT NULL, + `property_id` int(10) unsigned DEFAULT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX') COLLATE utf8_unicode_ci DEFAULT NULL, + `pidx` int(10) unsigned NOT NULL DEFAULT 0, + KEY `null_data_dom_ent_idx` (`domain_id`,`entity_id`), + KEY `null_forkey_ent` (`entity_id`), + KEY `null_forkey_pro` (`property_id`), + CONSTRAINT `null_forkey_dom` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), + CONSTRAINT `null_forkey_ent` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), + CONSTRAINT `null_forkey_pro` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `passwd` +-- + +DROP TABLE IF EXISTS `passwd`; +CREATE TABLE `passwd` ( + `principal` varbinary(255) NOT NULL, + `hash` varbinary(255) NOT NULL, + `alg` varchar(255) COLLATE utf8_unicode_ci DEFAULT 'SHA-512', + `it` int(10) unsigned DEFAULT 5000, + `salt` varbinary(255) NOT NULL, + PRIMARY KEY (`principal`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `roles` +-- + +DROP TABLE IF EXISTS `roles`; +CREATE TABLE `roles` ( + `name` varbinary(255) NOT NULL, + `description` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, + PRIMARY KEY (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `roles` +-- + +LOCK TABLES `roles` WRITE; +INSERT INTO `roles` VALUES ('administration','Users with this role have unrestricted permissions.'),('anonymous','Users who did not authenticate themselves.'); +UNLOCK TABLES; + +-- +-- Table structure for table `permissions` +-- + +DROP TABLE IF EXISTS `permissions`; +CREATE TABLE `permissions` ( + `role` varbinary(255) NOT NULL, + `permissions` mediumtext COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`role`), + CONSTRAINT `perm_name_roles` FOREIGN KEY (`role`) REFERENCES `roles` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `permissions` +-- + +LOCK TABLES `permissions` WRITE; +INSERT INTO `permissions` VALUES ('administration','[{\"grant\":\"true\",\"priority\":\"true\",\"permission\":\"*\"}]'); +UNLOCK TABLES; + +-- +-- Table structure for table `query_template_def` +-- + +DROP TABLE IF EXISTS `query_template_def`; +CREATE TABLE `query_template_def` ( + `id` int(10) unsigned NOT NULL, + `definition` mediumtext COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + CONSTRAINT `query_template_def_ibfk_1` FOREIGN KEY (`id`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `reference_data` +-- + +DROP TABLE IF EXISTS `reference_data`; +CREATE TABLE `reference_data` ( + `domain_id` int(10) unsigned NOT NULL COMMENT 'Domain.', + `entity_id` int(10) unsigned NOT NULL COMMENT 'Entity.', + `property_id` int(10) unsigned NOT NULL COMMENT 'Property.', + `value` int(10) unsigned NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX','REPLACEMENT') COLLATE utf8_unicode_ci NOT NULL COMMENT 'Status of this statement.', + `pidx` int(10) unsigned NOT NULL DEFAULT 0, + `value_iversion` int(10) unsigned DEFAULT NULL, + KEY `entity_id` (`entity_id`,`property_id`), + KEY `ref_domain_id_entity` (`domain_id`), + KEY `ref_property_id_entity` (`property_id`), + KEY `value` (`value`,`value_iversion`), + CONSTRAINT `ref_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), + CONSTRAINT `ref_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), + CONSTRAINT `ref_property_id_entity` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`), + CONSTRAINT `ref_value_entity` FOREIGN KEY (`value`) REFERENCES `entities` (`id`), + CONSTRAINT `reference_data_ibfk_1` FOREIGN KEY (`value`, `value_iversion`) REFERENCES `entity_version` (`entity_id`, `_iversion`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `stats` +-- + +DROP TABLE IF EXISTS `stats`; +CREATE TABLE `stats` ( + `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `value` blob DEFAULT NULL, + PRIMARY KEY (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `text_data` +-- + +DROP TABLE IF EXISTS `text_data`; +CREATE TABLE `text_data` ( + `domain_id` int(10) unsigned NOT NULL COMMENT 'Domain.', + `entity_id` int(10) unsigned NOT NULL COMMENT 'Entity.', + `property_id` int(10) unsigned NOT NULL COMMENT 'Property.', + `value` text COLLATE utf8_unicode_ci NOT NULL, + `status` enum('OBLIGATORY','RECOMMENDED','SUGGESTED','FIX','REPLACEMENT') COLLATE utf8_unicode_ci NOT NULL COMMENT 'Status of this statement.', + `pidx` int(10) unsigned NOT NULL DEFAULT 0, + KEY `domain_id` (`domain_id`,`entity_id`), + KEY `str_entity_id_entity` (`entity_id`), + KEY `str_property_id_entity` (`property_id`), + CONSTRAINT `str_domain_id_entity` FOREIGN KEY (`domain_id`) REFERENCES `entities` (`id`), + CONSTRAINT `str_entity_id_entity` FOREIGN KEY (`entity_id`) REFERENCES `entities` (`id`), + CONSTRAINT `str_property_id_entity` FOREIGN KEY (`property_id`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `transaction_log` +-- + +DROP TABLE IF EXISTS `transaction_log`; +CREATE TABLE `transaction_log` ( + `transaction` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Transaction.', + `entity_id` int(10) unsigned NOT NULL COMMENT 'Entity ID.', + `username` varbinary(255) NOT NULL, + `seconds` bigint(20) unsigned NOT NULL DEFAULT 0, + `nanos` int(10) unsigned NOT NULL DEFAULT 0, + `realm` varbinary(255) NOT NULL, + KEY `entity_id` (`entity_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `units_lin_con` +-- + +DROP TABLE IF EXISTS `units_lin_con`; +CREATE TABLE `units_lin_con` ( + `signature_from` bigint(20) NOT NULL, + `signature_to` bigint(20) NOT NULL, + `a` decimal(65,30) NOT NULL, + `b_dividend` int(11) NOT NULL, + `b_divisor` int(11) NOT NULL, + `c` decimal(65,30) NOT NULL, + PRIMARY KEY (`signature_from`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `user_info` +-- + +DROP TABLE IF EXISTS `user_info`; +CREATE TABLE `user_info` ( + `realm` varbinary(255) NOT NULL, + `name` varbinary(255) NOT NULL, + `email` varbinary(255) DEFAULT NULL, + `status` enum('ACTIVE','INACTIVE') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'INACTIVE', + `entity` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`realm`,`name`), + KEY `subject_entity` (`entity`), + CONSTRAINT `subjects_ibfk_1` FOREIGN KEY (`entity`) REFERENCES `entities` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table `user_roles` +-- + +DROP TABLE IF EXISTS `user_roles`; +CREATE TABLE `user_roles` ( + `realm` varbinary(255) NOT NULL, + `user` varbinary(255) NOT NULL, + `role` varbinary(255) NOT NULL, + PRIMARY KEY (`realm`,`user`,`role`), + KEY `user_roles_ibfk_1` (`role`), + CONSTRAINT `user_roles_ibfk_1` FOREIGN KEY (`role`) REFERENCES `roles` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + diff --git a/patches/patch20201110-4.0.0-rc1/update_archive_isa.sql b/patches/patch20201110-4.0.0-rc1/update_archive_isa.sql index 9beaa85..34a46f1 100644 --- a/patches/patch20201110-4.0.0-rc1/update_archive_isa.sql +++ b/patches/patch20201110-4.0.0-rc1/update_archive_isa.sql @@ -19,9 +19,9 @@ */ -- remove unused procedures -DROP PROCEDURE IF EXISTS db_2_0.initNegationFilter; -DROP PROCEDURE IF EXISTS db_2_0.initConjunctionFilter; -DROP PROCEDURE IF EXISTS db_2_0.finishNegationFilter; +DROP PROCEDURE IF EXISTS initNegationFilter; +DROP PROCEDURE IF EXISTS initConjunctionFilter; +DROP PROCEDURE IF EXISTS finishNegationFilter; ALTER TABLE archive_isa ADD COLUMN `direct` BOOLEAN DEFAULT TRUE; diff --git a/procedures/deleteEntity.sql b/procedures/deleteEntity.sql index d66a7d7..5574f3e 100644 --- a/procedures/deleteEntity.sql +++ b/procedures/deleteEntity.sql @@ -35,10 +35,10 @@ EntityID : UNSIGNED The ID of the Entity. */ -DROP PROCEDURE IF EXISTS db_2_0.deleteEntity; +DROP PROCEDURE IF EXISTS db_5_0.deleteEntity; delimiter // -CREATE PROCEDURE db_2_0.deleteEntity(in EntityID INT UNSIGNED) +CREATE PROCEDURE db_5_0.deleteEntity(in EntityID INT UNSIGNED) BEGIN -- detele file properties diff --git a/procedures/deleteEntityProperties.sql b/procedures/deleteEntityProperties.sql index 2075696..147959d 100644 --- a/procedures/deleteEntityProperties.sql +++ b/procedures/deleteEntityProperties.sql @@ -23,10 +23,10 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.deleteEntityProperties; +DROP PROCEDURE IF EXISTS db_5_0.deleteEntityProperties; delimiter // -CREATE PROCEDURE db_2_0.deleteEntityProperties(in EntityID INT UNSIGNED) +CREATE PROCEDURE db_5_0.deleteEntityProperties(in EntityID INT UNSIGNED) BEGIN DECLARE IVersion INT UNSIGNED DEFAULT NULL; diff --git a/procedures/deleteIsaCache.sql b/procedures/deleteIsaCache.sql index 1ffff23..fd78d3f 100644 --- a/procedures/deleteIsaCache.sql +++ b/procedures/deleteIsaCache.sql @@ -24,7 +24,7 @@ */ SET GLOBAL log_bin_trust_function_creators = 1; -DROP PROCEDURE IF EXISTS db_2_0.deleteIsa; +DROP PROCEDURE IF EXISTS db_5_0.deleteIsa; DELIMITER // /* Delete "is a" relations from the given entity towards ancestors. @@ -41,7 +41,7 @@ Parameters EntityID : UNSIGNED Child entity for which all parental relations should be deleted. */ -CREATE PROCEDURE db_2_0.deleteIsa(IN EntityID INT UNSIGNED) +CREATE PROCEDURE db_5_0.deleteIsa(IN EntityID INT UNSIGNED) BEGIN DECLARE IVersion INT UNSIGNED DEFAULT NULL; diff --git a/procedures/entityACL.sql b/procedures/entityACL.sql index 5f5822b..98e6123 100644 --- a/procedures/entityACL.sql +++ b/procedures/entityACL.sql @@ -22,9 +22,9 @@ */ -DROP PROCEDURE IF EXISTS db_2_0.entityACL; +DROP PROCEDURE IF EXISTS db_5_0.entityACL; delimiter // -CREATE PROCEDURE db_2_0.entityACL(out ACLID INT UNSIGNED, in ACLSTR VARBINARY(65525)) +CREATE PROCEDURE db_5_0.entityACL(out ACLID INT UNSIGNED, in ACLSTR VARBINARY(65525)) BEGIN SELECT id INTO ACLID FROM entity_acl as t WHERE t.acl=ACLSTR LIMIT 1; IF ACLID IS NULL THEN diff --git a/procedures/entityVersioning.sql b/procedures/entityVersioning.sql index 0c4e9cb..888fc60 100644 --- a/procedures/entityVersioning.sql +++ b/procedures/entityVersioning.sql @@ -20,7 +20,7 @@ delimiter // -DROP PROCEDURE IF EXISTS db_2_0.insert_single_child_version // +DROP PROCEDURE IF EXISTS db_5_0.insert_single_child_version // /** * Creates a new version record in the `entity_version` table. @@ -42,7 +42,7 @@ DROP PROCEDURE IF EXISTS db_2_0.insert_single_child_version // * The transaction ID which created this entity version (by inserting * or updating an entity). */ -CREATE PROCEDURE db_2_0.insert_single_child_version( +CREATE PROCEDURE db_5_0.insert_single_child_version( in EntityID INT UNSIGNED, in Hash VARBINARY(255), in Version VARBINARY(255), @@ -85,7 +85,7 @@ BEGIN END; // -DROP PROCEDURE IF EXISTS db_2_0.delete_all_entity_versions // +DROP PROCEDURE IF EXISTS db_5_0.delete_all_entity_versions // /** * Remove all records in the entity_version table for the given entity. @@ -95,7 +95,7 @@ DROP PROCEDURE IF EXISTS db_2_0.delete_all_entity_versions // * EntityID * The id of the versioned entity. */ -CREATE PROCEDURE db_2_0.delete_all_entity_versions( +CREATE PROCEDURE db_5_0.delete_all_entity_versions( in EntityID INT UNSIGNED) BEGIN @@ -104,7 +104,7 @@ BEGIN END; // -DROP FUNCTION IF EXISTS db_2_0.get_iversion // +DROP FUNCTION IF EXISTS db_5_0.get_iversion // /** * Get the internal version id (an integer) of the (API-)version id. @@ -120,7 +120,7 @@ DROP FUNCTION IF EXISTS db_2_0.get_iversion // * ------- * The internal version id. */ -CREATE FUNCTION db_2_0.get_iversion( +CREATE FUNCTION db_5_0.get_iversion( EntityID INT UNSIGNED, Version VARBINARY(255)) RETURNS INT UNSIGNED @@ -136,7 +136,7 @@ END; // -DROP FUNCTION IF EXISTS db_2_0.get_primary_parent_version // +DROP FUNCTION IF EXISTS db_5_0.get_primary_parent_version // /** * Get the version ID of the primary parent (i.e. predecessor) of a version. @@ -152,7 +152,7 @@ DROP FUNCTION IF EXISTS db_2_0.get_primary_parent_version // * ------- * The id of the given version's primary parent version. */ -CREATE FUNCTION db_2_0.get_primary_parent_version( +CREATE FUNCTION db_5_0.get_primary_parent_version( EntityID INT UNSIGNED, Version VARBINARY(255)) RETURNS VARBINARY(255) @@ -170,7 +170,7 @@ END; // -DROP FUNCTION IF EXISTS db_2_0.get_version_timestamp // +DROP FUNCTION IF EXISTS db_5_0.get_version_timestamp // /** * Get the timestamp of a version by retrieving the timestamp of the * transaction which created the version. @@ -187,7 +187,7 @@ DROP FUNCTION IF EXISTS db_2_0.get_version_timestamp // * The versions' timestamp in <seconds-since-epoch>.<nanoseconds> format. * Note that the dot `.` here is not necessarily a decimal separator. */ -CREATE FUNCTION db_2_0.get_version_timestamp( +CREATE FUNCTION db_5_0.get_version_timestamp( EntityID INT UNSIGNED, Version VARBINARY(255)) RETURNS VARCHAR(255) @@ -203,7 +203,7 @@ BEGIN END; // -DROP FUNCTION IF EXISTS db_2_0.get_head_version // +DROP FUNCTION IF EXISTS db_5_0.get_head_version // /** * Get the version id of the HEAD of an entity. @@ -217,7 +217,7 @@ DROP FUNCTION IF EXISTS db_2_0.get_head_version // * ------- * The version id of the HEAD. */ -CREATE FUNCTION db_2_0.get_head_version( +CREATE FUNCTION db_5_0.get_head_version( EntityID INT UNSIGNED) RETURNS VARBINARY(255) READS SQL DATA @@ -226,7 +226,7 @@ BEGIN END; // -DROP FUNCTION IF EXISTS db_2_0._get_head_iversion // +DROP FUNCTION IF EXISTS db_5_0._get_head_iversion // /** * Get the _iversion number of the HEAD of an entity. @@ -240,7 +240,7 @@ DROP FUNCTION IF EXISTS db_2_0._get_head_iversion // * ------- * The _iversion of the HEAD. */ -CREATE FUNCTION db_2_0._get_head_iversion( +CREATE FUNCTION db_5_0._get_head_iversion( EntityID INT UNSIGNED) RETURNS INT UNSIGNED READS SQL DATA @@ -259,7 +259,7 @@ BEGIN END; -DROP FUNCTION IF EXISTS db_2_0.get_head_relative // +DROP FUNCTION IF EXISTS db_5_0.get_head_relative // /** * Get the id of a version which is specified relative to the HEAD of an @@ -278,7 +278,7 @@ DROP FUNCTION IF EXISTS db_2_0.get_head_relative // * ------- * The version id of the HEAD. */ -CREATE FUNCTION db_2_0.get_head_relative( +CREATE FUNCTION db_5_0.get_head_relative( EntityID INT UNSIGNED, Offset INT UNSIGNED) RETURNS VARBINARY(255) @@ -298,7 +298,7 @@ BEGIN END; // -DROP FUNCTION IF EXISTS db_2_0._get_version // +DROP FUNCTION IF EXISTS db_5_0._get_version // /** * The inverse function of get_iversion. Resolves the version id. * @@ -313,7 +313,7 @@ DROP FUNCTION IF EXISTS db_2_0._get_version // * ------- * The version id. */ -CREATE FUNCTION db_2_0._get_version( +CREATE FUNCTION db_5_0._get_version( EntityID INT UNSIGNED, IVersion INT UNSIGNED) RETURNS VARBINARY(255) @@ -327,7 +327,7 @@ BEGIN END; // -DROP PROCEDURE IF EXISTS db_2_0.get_version_history // +DROP PROCEDURE IF EXISTS db_5_0.get_version_history // /** * Select the complete transaction history of an entity (Who created which @@ -343,7 +343,7 @@ DROP PROCEDURE IF EXISTS db_2_0.get_version_history // * Tuples (child, parent, child_seconds, child_nanos, child_username, * child_realm). `child` and `parent` are version IDs. */ -CREATE PROCEDURE db_2_0.get_version_history( +CREATE PROCEDURE db_5_0.get_version_history( in EntityID INT UNSIGNED) BEGIN -- retrieve root(s) (initial versions) diff --git a/procedures/getDependentEntities.sql b/procedures/getDependentEntities.sql index c69c64f..708503d 100644 --- a/procedures/getDependentEntities.sql +++ b/procedures/getDependentEntities.sql @@ -23,10 +23,10 @@ -DROP PROCEDURE IF EXISTS db_2_0.getDependentEntities; +DROP PROCEDURE IF EXISTS db_5_0.getDependentEntities; delimiter // -CREATE PROCEDURE db_2_0.getDependentEntities(in EntityID INT UNSIGNED) +CREATE PROCEDURE db_5_0.getDependentEntities(in EntityID INT UNSIGNED) BEGIN DROP TEMPORARY TABLE IF EXISTS refering; diff --git a/procedures/getFileIdByPath.sql b/procedures/getFileIdByPath.sql index f644afe..e565ece 100644 --- a/procedures/getFileIdByPath.sql +++ b/procedures/getFileIdByPath.sql @@ -21,9 +21,9 @@ * ** end header */ -Drop Procedure if exists db_2_0.getFileIdByPath; +Drop Procedure if exists db_5_0.getFileIdByPath; Delimiter // -Create Procedure db_2_0.getFileIdByPath (in FilePath VARCHAR(255)) +Create Procedure db_5_0.getFileIdByPath (in FilePath VARCHAR(255)) BEGIN Select file_id as FileID from files where path=FilePath LIMIT 1; diff --git a/procedures/getInfo.sql b/procedures/getInfo.sql index bf77215..03c75b4 100644 --- a/procedures/getInfo.sql +++ b/procedures/getInfo.sql @@ -21,4 +21,4 @@ * ** end header */ #-- old procedure. -Drop Procedure if exists db_2_0.getInfo; +Drop Procedure if exists db_5_0.getInfo; diff --git a/procedures/getRole.sql b/procedures/getRole.sql index 1f1552e..bea96fc 100644 --- a/procedures/getRole.sql +++ b/procedures/getRole.sql @@ -27,9 +27,9 @@ -DROP PROCEDURE IF EXISTS db_2_0.getRole; +DROP PROCEDURE IF EXISTS db_5_0.getRole; delimiter // -CREATE PROCEDURE db_2_0.getRole(in RoleName VARCHAR(255)) +CREATE PROCEDURE db_5_0.getRole(in RoleName VARCHAR(255)) BEGIN Select e.id INTO @RoleID from entities e where e.name=RoleName AND e.role=RoleName LIMIT 1; diff --git a/procedures/initAutoIncrement.sql b/procedures/initAutoIncrement.sql index 229dc9c..54cb545 100644 --- a/procedures/initAutoIncrement.sql +++ b/procedures/initAutoIncrement.sql @@ -21,10 +21,10 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.initAutoIncrement; +DROP PROCEDURE IF EXISTS db_5_0.initAutoIncrement; delimiter // -CREATE PROCEDURE db_2_0.initAutoIncrement() +CREATE PROCEDURE db_5_0.initAutoIncrement() BEGIN SELECT @max := MAX(entity_id)+ 1 FROM transaction_log; diff --git a/procedures/insertEntity.sql b/procedures/insertEntity.sql index 50a3997..e73a3bd 100644 --- a/procedures/insertEntity.sql +++ b/procedures/insertEntity.sql @@ -24,7 +24,7 @@ */ -DROP PROCEDURE IF EXISTS db_2_0.insertEntity; +DROP PROCEDURE IF EXISTS db_5_0.insertEntity; delimiter // /* Insert an Entity @@ -46,7 +46,7 @@ Select A tuple (EntityID, Version) */ -CREATE PROCEDURE db_2_0.insertEntity(in EntityName VARCHAR(255), in EntityDesc TEXT, in EntityRole VARCHAR(255), in ACL VARBINARY(65525)) +CREATE PROCEDURE db_5_0.insertEntity(in EntityName VARCHAR(255), in EntityDesc TEXT, in EntityRole VARCHAR(255), in ACL VARBINARY(65525)) BEGIN DECLARE NewEntityID INT UNSIGNED DEFAULT NULL; DECLARE NewACLID INT UNSIGNED DEFAULT NULL; diff --git a/procedures/insertEntityProperty.sql b/procedures/insertEntityProperty.sql index d208dbc..1cfd38b 100644 --- a/procedures/insertEntityProperty.sql +++ b/procedures/insertEntityProperty.sql @@ -23,9 +23,9 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.insertEntityProperty; +DROP PROCEDURE IF EXISTS db_5_0.insertEntityProperty; delimiter // -CREATE PROCEDURE db_2_0.insertEntityProperty( +CREATE PROCEDURE db_5_0.insertEntityProperty( in DomainID INT UNSIGNED, in EntityID INT UNSIGNED, in PropertyID INT UNSIGNED, diff --git a/procedures/insertIsaCache.sql b/procedures/insertIsaCache.sql index a05681d..9d1bf1c 100644 --- a/procedures/insertIsaCache.sql +++ b/procedures/insertIsaCache.sql @@ -21,7 +21,7 @@ * * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.insertIsa; +DROP PROCEDURE IF EXISTS db_5_0.insertIsa; DELIMITER // /** @@ -39,7 +39,7 @@ DELIMITER // * p : UNSIGNED * The parent entity */ -CREATE PROCEDURE db_2_0.insertIsa(IN c INT UNSIGNED, IN p INT UNSIGNED) +CREATE PROCEDURE db_5_0.insertIsa(IN c INT UNSIGNED, IN p INT UNSIGNED) insert_is_a_proc: BEGIN INSERT INTO isa_cache (child, parent, rpath) VALUES (c, p, c); diff --git a/procedures/insertLinCon.sql b/procedures/insertLinCon.sql index 7c03d50..0ace949 100644 --- a/procedures/insertLinCon.sql +++ b/procedures/insertLinCon.sql @@ -21,10 +21,10 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.insertLinCon; +DROP PROCEDURE IF EXISTS db_5_0.insertLinCon; delimiter // -CREATE PROCEDURE db_2_0.insertLinCon(in signature_from BIGINT, in signature_to BIGINT, in a DECIMAL(65,30), in b_dividend BIGINT, in b_divisor BIGINT, in c DECIMAL(65,30)) +CREATE PROCEDURE db_5_0.insertLinCon(in signature_from BIGINT, in signature_to BIGINT, in a DECIMAL(65,30), in b_dividend BIGINT, in b_divisor BIGINT, in c DECIMAL(65,30)) BEGIN INSERT IGNORE INTO units_lin_con (signature_from, signature_to, a, b_dividend, b_divisor, c) VALUES (signature_from, signature_to, a, b_dividend, b_divisor, c); @@ -33,10 +33,10 @@ END; // delimiter ; -DROP PROCEDURE IF EXISTS db_2_0.deleteLinCon; +DROP PROCEDURE IF EXISTS db_5_0.deleteLinCon; delimiter // -CREATE PROCEDURE db_2_0.deleteLinCon(in sig BIGINT) +CREATE PROCEDURE db_5_0.deleteLinCon(in sig BIGINT) BEGIN DELETE FROM units_lin_con WHERE signature_from=sig; @@ -45,10 +45,10 @@ END; // delimiter ; -DROP PROCEDURE IF EXISTS db_2_0.updateLinCon; +DROP PROCEDURE IF EXISTS db_5_0.updateLinCon; delimiter // -CREATE PROCEDURE db_2_0.updateLinCon(in sig_from BIGINT, in sig_to BIGINT, in new_a DECIMAL(65,30), in new_b_dividend BIGINT, in new_b_divisor BIGINT, in new_c DECIMAL(65,30)) +CREATE PROCEDURE db_5_0.updateLinCon(in sig_from BIGINT, in sig_to BIGINT, in new_a DECIMAL(65,30), in new_b_dividend BIGINT, in new_b_divisor BIGINT, in new_c DECIMAL(65,30)) BEGIN UPDATE units_lin_con SET signature_to=sig_to, a=new_a, b_dividend=new_b_dividend, b_divisor=new_b_divisor, c=new_c where signature_from=sig_from; @@ -57,10 +57,10 @@ END; delimiter ; -DROP PROCEDURE IF EXISTS db_2_0.cleanUpLinCon; +DROP PROCEDURE IF EXISTS db_5_0.cleanUpLinCon; delimiter // -CREATE PROCEDURE db_2_0.cleanUpLinCon() +CREATE PROCEDURE db_5_0.cleanUpLinCon() BEGIN DELETE FROM units_lin_con WHERE NOT EXISTS (SELECT '1' FROM double_data WHERE unit_sig=signature_from) AND NOT EXISTS (SELECT '1' FROM integer_data WHERE unit_sig=signature_from); diff --git a/procedures/insertUser.sql b/procedures/insertUser.sql index bea3022..4f2f01e 100644 --- a/procedures/insertUser.sql +++ b/procedures/insertUser.sql @@ -21,9 +21,9 @@ * ** end header */ -Drop Procedure if exists db_2_0.insertUser; +Drop Procedure if exists db_5_0.insertUser; Delimiter // -Create Procedure db_2_0.insertUser(in Name VARCHAR(255), in Password VARCHAR(255)) +Create Procedure db_5_0.insertUser(in Name VARCHAR(255), in Password VARCHAR(255)) BEGIN diff --git a/procedures/isSubtype.sql b/procedures/isSubtype.sql index 47019bf..f97c13f 100644 --- a/procedures/isSubtype.sql +++ b/procedures/isSubtype.sql @@ -22,10 +22,10 @@ */ -DROP PROCEDURE IF EXISTS db_2_0.isSubtype; +DROP PROCEDURE IF EXISTS db_5_0.isSubtype; delimiter // -CREATE PROCEDURE db_2_0.isSubtype(in c INT UNSIGNED, in p INT UNSIGNED) +CREATE PROCEDURE db_5_0.isSubtype(in c INT UNSIGNED, in p INT UNSIGNED) BEGIN DECLARE ret BOOLEAN DEFAULT FALSE; SELECT TRUE INTO ret FROM isa_cache AS i WHERE i.child=c AND i.parent=p LIMIT 1; diff --git a/procedures/is_feature_config.sql b/procedures/is_feature_config.sql new file mode 100644 index 0000000..b658650 --- /dev/null +++ b/procedures/is_feature_config.sql @@ -0,0 +1,35 @@ +/* + * This file is a part of the CaosDB Project. + * + * Copyright (C) 2020 IndiScale GmbH <info@indiscale.com> + * Copyright (C) 2020 Timm Fitschen <t.fitschen@indiscale.com> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +delimiter // + +DROP FUNCTION IF EXISTS is_feature_config // +CREATE FUNCTION is_feature_config( + _Key VARCHAR(255), + Expected VARCHAR(255)) +RETURNS BOOLEAN +READS SQL DATA +BEGIN + RETURN ( + SELECT f._value = Expected FROM feature_config as f WHERE f._key = _Key + ); +END // + +delimiter ; diff --git a/procedures/overrideName.sql b/procedures/overrideName.sql index 2c8c347..ace102b 100644 --- a/procedures/overrideName.sql +++ b/procedures/overrideName.sql @@ -21,24 +21,24 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.overrideName; -DROP PROCEDURE IF EXISTS db_2_0.overrideDesc; -DROP PROCEDURE IF EXISTS db_2_0.overrideType; +DROP PROCEDURE IF EXISTS db_5_0.overrideName; +DROP PROCEDURE IF EXISTS db_5_0.overrideDesc; +DROP PROCEDURE IF EXISTS db_5_0.overrideType; DELIMITER // -CREATE PROCEDURE db_2_0.overrideName(in DomainID INT UNSIGNED, in EntityID INT UNSIGNED, in PropertyID INT UNSIGNED, in Name VARCHAR(255)) +CREATE PROCEDURE db_5_0.overrideName(in DomainID INT UNSIGNED, in EntityID INT UNSIGNED, in PropertyID INT UNSIGNED, in Name VARCHAR(255)) BEGIN INSERT INTO name_overrides (domain_id, entity_id, property_id, name) VALUES (DomainID, EntityID, PropertyID, Name); END; // -CREATE PROCEDURE db_2_0.overrideDesc(in DomainID INT UNSIGNED, in EntityID INT UNSIGNED, in PropertyID INT UNSIGNED, in Description TEXT) +CREATE PROCEDURE db_5_0.overrideDesc(in DomainID INT UNSIGNED, in EntityID INT UNSIGNED, in PropertyID INT UNSIGNED, in Description TEXT) BEGIN INSERT INTO desc_overrides (domain_id, entity_id, property_id, description) VALUES (DomainID, EntityID, PropertyID, Description); END; // -CREATE PROCEDURE db_2_0.overrideType(in DomainID INT UNSIGNED, in EntityID INT UNSIGNED, in PropertyID INT UNSIGNED, in Datatype INT UNSIGNED) +CREATE PROCEDURE db_5_0.overrideType(in DomainID INT UNSIGNED, in EntityID INT UNSIGNED, in PropertyID INT UNSIGNED, in Datatype INT UNSIGNED) BEGIN INSERT INTO data_type (domain_id, entity_id, property_id, datatype) VALUES (DomainID, EntityID, PropertyID, Datatype); END; diff --git a/procedures/query/applyBackReference.sql b/procedures/query/applyBackReference.sql index 2d74f74..5ca0c4a 100644 --- a/procedures/query/applyBackReference.sql +++ b/procedures/query/applyBackReference.sql @@ -24,7 +24,7 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.applyBackReference; +DROP PROCEDURE IF EXISTS db_5_0.applyBackReference; DELIMITER // /** @@ -61,7 +61,7 @@ DELIMITER // * column as well (unless sourceSet is the `entities` table). * */ -CREATE PROCEDURE db_2_0.applyBackReference(in sourceSet VARCHAR(255), targetSet VARCHAR(255), +CREATE PROCEDURE db_5_0.applyBackReference(in sourceSet VARCHAR(255), targetSet VARCHAR(255), in propertiesTable VARCHAR(255), in entitiesTable VARCHAR(255), in subQuery BOOLEAN, in versioned BOOLEAN) BEGIN diff --git a/procedures/query/applyIDFilter.sql b/procedures/query/applyIDFilter.sql index c9b8764..b1c26b7 100644 --- a/procedures/query/applyIDFilter.sql +++ b/procedures/query/applyIDFilter.sql @@ -21,7 +21,7 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.applyIDFilter; +DROP PROCEDURE IF EXISTS db_5_0.applyIDFilter; DELIMITER // @@ -33,7 +33,7 @@ DELIMITER // * The `versioned` flag currently only has the effect that an `_iversion` column is also copied to * the target. */ -CREATE PROCEDURE db_2_0.applyIDFilter(in sourceSet VARCHAR(255), in targetSet VARCHAR(255), +CREATE PROCEDURE db_5_0.applyIDFilter(in sourceSet VARCHAR(255), in targetSet VARCHAR(255), in o CHAR(2), in vInt BIGINT, in agg CHAR(3), in versioned BOOLEAN) IDFILTER_LABEL: BEGIN DECLARE data VARCHAR(20000) DEFAULT NULL; diff --git a/procedures/query/applyPOV.sql b/procedures/query/applyPOV.sql index a6608fa..03e2f1d 100644 --- a/procedures/query/applyPOV.sql +++ b/procedures/query/applyPOV.sql @@ -24,7 +24,7 @@ /* Documentation including (?) has to be checked by an expert. */ /* Question: What is datetime dot notation? */ -DROP PROCEDURE IF EXISTS db_2_0.applyPOV; +DROP PROCEDURE IF EXISTS db_5_0.applyPOV; DELIMITER // /** @@ -40,7 +40,7 @@ DELIMITER // * If True, sourceSet and targetSet have an _iversion column, otherwise that column will be ignored * (or only HEAD will be inserted into targetSet). */ -CREATE PROCEDURE db_2_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 propertiesTable VARCHAR(255), in refIdsTable VARCHAR(255), diff --git a/procedures/query/applyRefPOV.sql b/procedures/query/applyRefPOV.sql index a367408..5aeb966 100644 --- a/procedures/query/applyRefPOV.sql +++ b/procedures/query/applyRefPOV.sql @@ -20,10 +20,10 @@ * * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.applyRefPOV; +DROP PROCEDURE IF EXISTS db_5_0.applyRefPOV; DELIMITER // -CREATE PROCEDURE db_2_0.applyRefPOV(in sourceSet VARCHAR(255), in targetSet VARCHAR(255), +CREATE PROCEDURE db_5_0.applyRefPOV(in sourceSet VARCHAR(255), in targetSet VARCHAR(255), in properties VARCHAR(255), in refs VARCHAR(255), in versioned BOOLEAN) BEGIN diff --git a/procedures/query/applySAT.sql b/procedures/query/applySAT.sql index 0e2a8c4..9749990 100644 --- a/procedures/query/applySAT.sql +++ b/procedures/query/applySAT.sql @@ -23,10 +23,10 @@ -DROP PROCEDURE IF EXISTS db_2_0.applySAT; +DROP PROCEDURE IF EXISTS db_5_0.applySAT; DELIMITER // -CREATE PROCEDURE db_2_0.applySAT(in sourceSet VARCHAR(255), in targetSet VARCHAR(255), in loc MEDIUMTEXT, in op CHAR(5)) +CREATE PROCEDURE db_5_0.applySAT(in sourceSet VARCHAR(255), in targetSet VARCHAR(255), in loc MEDIUMTEXT, in op CHAR(5)) BEGIN IF targetSet IS NULL OR sourceSet = targetSet THEN diff --git a/procedures/query/applyTransactionFilter.sql b/procedures/query/applyTransactionFilter.sql index 49a4edb..7a428b0 100644 --- a/procedures/query/applyTransactionFilter.sql +++ b/procedures/query/applyTransactionFilter.sql @@ -20,10 +20,10 @@ * * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.applyTransactionFilter; +DROP PROCEDURE IF EXISTS db_5_0.applyTransactionFilter; DELIMITER // -CREATE PROCEDURE db_2_0.applyTransactionFilter(in sourceSet VARCHAR(255), targetSet VARCHAR(255), in transaction VARCHAR(255), in operator_u CHAR(2), in realm VARCHAR(255), in userName VARCHAR(255), in ilb BIGINT, in ilb_nanos INT UNSIGNED, in eub BIGINT, in eub_nanos INT UNSIGNED, in operator_t CHAR(2)) +CREATE PROCEDURE db_5_0.applyTransactionFilter(in sourceSet VARCHAR(255), targetSet VARCHAR(255), in transaction VARCHAR(255), in operator_u CHAR(2), in realm VARCHAR(255), in userName VARCHAR(255), in ilb BIGINT, in ilb_nanos INT UNSIGNED, in eub BIGINT, in eub_nanos INT UNSIGNED, in operator_t CHAR(2)) BEGIN DECLARE data TEXT default CONCAT('(SELECT entity_id FROM transaction_log AS t WHERE t.transaction=\'', transaction, diff --git a/procedures/query/calcComplementUnion.sql b/procedures/query/calcComplementUnion.sql index daaafa1..f159e34 100644 --- a/procedures/query/calcComplementUnion.sql +++ b/procedures/query/calcComplementUnion.sql @@ -22,11 +22,11 @@ */ -DROP PROCEDURE IF EXISTS db_2_0.calcComplementUnion; +DROP PROCEDURE IF EXISTS db_5_0.calcComplementUnion; -- Apparently this code is not used anymore DELIMITER // -CREATE PROCEDURE db_2_0.calcComplementUnion(in targetSet VARCHAR(255), in subResultSet VARCHAR(255), in universe VARCHAR(255), in versioned BOOLEAN) +CREATE PROCEDURE db_5_0.calcComplementUnion(in targetSet VARCHAR(255), in subResultSet VARCHAR(255), in universe VARCHAR(255), in versioned BOOLEAN) BEGIN IF versioned AND universe = "entities" THEN SET @stmtComplementUnionStr = CONCAT( diff --git a/procedures/query/calcDifference.sql b/procedures/query/calcDifference.sql index c9788df..e0d11e2 100644 --- a/procedures/query/calcDifference.sql +++ b/procedures/query/calcDifference.sql @@ -24,13 +24,13 @@ -DROP PROCEDURE IF EXISTS db_2_0.calcDifference; +DROP PROCEDURE IF EXISTS db_5_0.calcDifference; DELIMITER // /** * Delete rows from `resultSetTable` which have a matching ID (an version) in `diff`. */ -CREATE PROCEDURE db_2_0.calcDifference(in resultSetTable VARCHAR(255), in diff VARCHAR(255), in versioned BOOLEAN) +CREATE PROCEDURE db_5_0.calcDifference(in resultSetTable VARCHAR(255), in diff VARCHAR(255), in versioned BOOLEAN) BEGIN IF versioned THEN SET @diffStmtStr = CONCAT('DELETE FROM `', resultSetTable, '` WHERE EXISTS ( SELECT 1 FROM `', diff,'` AS diff WHERE diff.id=`',resultSetTable,'`.`id` AND diff._iversion=`', resultSetTable, '`.`_iversion`)'); diff --git a/procedures/query/calcIntersection.sql b/procedures/query/calcIntersection.sql index 4cc9009..9375585 100644 --- a/procedures/query/calcIntersection.sql +++ b/procedures/query/calcIntersection.sql @@ -22,13 +22,13 @@ */ -DROP PROCEDURE IF EXISTS db_2_0.calcIntersection; +DROP PROCEDURE IF EXISTS db_5_0.calcIntersection; DELIMITER // /** * Drop rows in `resultSetTable` which do not have a matching ID (and version) in `intersectWith`. */ -CREATE PROCEDURE db_2_0.calcIntersection(in resultSetTable VARCHAR(255), in intersectWith VARCHAR(255), in versioned BOOLEAN) +CREATE PROCEDURE db_5_0.calcIntersection(in resultSetTable VARCHAR(255), in intersectWith VARCHAR(255), in versioned BOOLEAN) BEGIN IF versioned THEN SET @diffStmtStr = CONCAT('DELETE FROM `', diff --git a/procedures/query/calcUnion.sql b/procedures/query/calcUnion.sql index 006fb11..34a8eb2 100644 --- a/procedures/query/calcUnion.sql +++ b/procedures/query/calcUnion.sql @@ -23,13 +23,13 @@ -DROP PROCEDURE IF EXISTS db_2_0.calcUnion; +DROP PROCEDURE IF EXISTS db_5_0.calcUnion; DELIMITER // /** * Add the rows from `sourceSet` to `targetSet`. */ -CREATE PROCEDURE db_2_0.calcUnion(in targetSet VARCHAR(255), in sourceSet VARCHAR(255)) +CREATE PROCEDURE db_5_0.calcUnion(in targetSet VARCHAR(255), in sourceSet VARCHAR(255)) BEGIN SET @diffStmtStr = CONCAT('INSERT IGNORE INTO `', targetSet, '` SELECT * FROM `',sourceSet,'`'); PREPARE diffStmt FROM @diffStmtStr; diff --git a/procedures/query/cleanUpQuery.sql b/procedures/query/cleanUpQuery.sql index 7cf78a5..c5a7774 100644 --- a/procedures/query/cleanUpQuery.sql +++ b/procedures/query/cleanUpQuery.sql @@ -24,13 +24,13 @@ -DROP PROCEDURE IF EXISTS db_2_0.cleanUpQuery; +DROP PROCEDURE IF EXISTS db_5_0.cleanUpQuery; DELIMITER // /** * Drop temporary tables and warnings, existing warnings are returned in the result set. */ -CREATE PROCEDURE db_2_0.cleanUpQuery() +CREATE PROCEDURE db_5_0.cleanUpQuery() BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS warnings (warning TEXT NOT NULL); SELECT * from warnings; diff --git a/procedures/query/copyTable.sql b/procedures/query/copyTable.sql index c7ca461..3fae95d 100644 --- a/procedures/query/copyTable.sql +++ b/procedures/query/copyTable.sql @@ -22,10 +22,10 @@ */ -DROP PROCEDURE IF EXISTS db_2_0.copyTable; +DROP PROCEDURE IF EXISTS db_5_0.copyTable; DELIMITER // -CREATE PROCEDURE db_2_0.copyTable(in fromTable VARCHAR(255), in toTable VARCHAR(255)) +CREATE PROCEDURE db_5_0.copyTable(in fromTable VARCHAR(255), in toTable VARCHAR(255)) BEGIN SET @copyTableStmtStr = CONCAT('INSERT IGNORE INTO `', toTable, '` (id) SELECT id FROM `', fromTable, '`'); PREPARE copyTableStmt FROM @copyTableStmtStr; diff --git a/procedures/query/createTmpTable.sql b/procedures/query/createTmpTable.sql index 2c34296..e920f6e 100644 --- a/procedures/query/createTmpTable.sql +++ b/procedures/query/createTmpTable.sql @@ -21,10 +21,10 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.registerTempTableName; +DROP PROCEDURE IF EXISTS db_5_0.registerTempTableName; DELIMITER // -CREATE PROCEDURE db_2_0.registerTempTableName(out newTableName VARCHAR(255)) +CREATE PROCEDURE db_5_0.registerTempTableName(out newTableName VARCHAR(255)) BEGIN SET newTableName = md5(CONCAT(RAND(),CURRENT_TIMESTAMP())); SET @tempTableList = IF(@tempTableList IS NULL, @@ -35,7 +35,7 @@ END; // DELIMITER ; -DROP PROCEDURE IF EXISTS db_2_0.createTmpTable; +DROP PROCEDURE IF EXISTS db_5_0.createTmpTable; DELIMITER // /** @@ -44,7 +44,7 @@ DELIMITER // * If versioned: Creates a temporary table for query results with an `id` * column and an `_iversion` column. */ -CREATE PROCEDURE db_2_0.createTmpTable(out newTableName VARCHAR(255), in versioned BOOLEAN) +CREATE PROCEDURE db_5_0.createTmpTable(out newTableName VARCHAR(255), in versioned BOOLEAN) BEGIN call registerTempTableName(newTableName); @@ -71,10 +71,10 @@ DELIMITER ; * id2 - for entity ids (usually those entities which have the other id as property or value) * domain - for domain ids */ -DROP PROCEDURE IF EXISTS db_2_0.createTmpTable2; +DROP PROCEDURE IF EXISTS db_5_0.createTmpTable2; DELIMITER // -CREATE PROCEDURE db_2_0.createTmpTable2(out newTableName VARCHAR(255)) +CREATE PROCEDURE db_5_0.createTmpTable2(out newTableName VARCHAR(255)) BEGIN call registerTempTableName(newTableName); SET @createTableStmtStr = CONCAT('CREATE TEMPORARY TABLE `', newTableName, diff --git a/procedures/query/finishNegationFilter.sql b/procedures/query/finishNegationFilter.sql index 3421310..d2b1626 100644 --- a/procedures/query/finishNegationFilter.sql +++ b/procedures/query/finishNegationFilter.sql @@ -21,10 +21,10 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.finishNegationFilter; +DROP PROCEDURE IF EXISTS db_5_0.finishNegationFilter; DELIMITER // -CREATE PROCEDURE db_2_0.finishNegationFilter(in resultSetTable VARCHAR(255), in diff VARCHAR(255)) +CREATE PROCEDURE db_5_0.finishNegationFilter(in resultSetTable VARCHAR(255), in diff VARCHAR(255)) BEGIN call calcDifference(resultSetTable, diff); END; diff --git a/procedures/query/finishSubProperty.sql b/procedures/query/finishSubProperty.sql index 73a9ee6..85937f7 100644 --- a/procedures/query/finishSubProperty.sql +++ b/procedures/query/finishSubProperty.sql @@ -21,10 +21,10 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.finishSubProperty; +DROP PROCEDURE IF EXISTS db_5_0.finishSubProperty; DELIMITER // -CREATE PROCEDURE db_2_0.finishSubProperty(in sourceSet VARCHAR(255),in targetSet VARCHAR(255), +CREATE PROCEDURE db_5_0.finishSubProperty(in sourceSet VARCHAR(255),in targetSet VARCHAR(255), in list VARCHAR(255), in versioned BOOLEAN) BEGIN DECLARE data VARCHAR(20000) DEFAULT CONCAT('`',list,'`'); diff --git a/procedures/query/getAggValueWhereClause.sql b/procedures/query/getAggValueWhereClause.sql index 1f9db97..c0bcab2 100644 --- a/procedures/query/getAggValueWhereClause.sql +++ b/procedures/query/getAggValueWhereClause.sql @@ -21,10 +21,10 @@ * ** end header */ -DROP FUNCTION IF EXISTS db_2_0.getAggValueWhereClause; +DROP FUNCTION IF EXISTS db_5_0.getAggValueWhereClause; DELIMITER // -CREATE FUNCTION db_2_0.getAggValueWhereClause(entities VARCHAR(255), properties VARCHAR(255)) RETURNS VARCHAR(20000) DETERMINISTIC +CREATE FUNCTION db_5_0.getAggValueWhereClause(entities VARCHAR(255), properties VARCHAR(255)) RETURNS VARCHAR(20000) DETERMINISTIC BEGIN RETURN CONCAT(" EXISTS (SELECT 1 FROM `", entities, "` AS ent WHERE ent.id = subdata.entity_id LIMIT 1)", IF(properties IS NOT NULL AND properties != '', CONCAT(" AND EXISTS (SELECT 1 FROM `", properties, "` as props WHERE props.id = subdata.property_id LIMIT 1)"),'')); END; diff --git a/procedures/query/getChildren.sql b/procedures/query/getChildren.sql index 0ab6784..0b2ec51 100644 --- a/procedures/query/getChildren.sql +++ b/procedures/query/getChildren.sql @@ -21,14 +21,14 @@ * ** end header */ -Drop Procedure if exists db_2_0.getChildren; +Drop Procedure if exists db_5_0.getChildren; Delimiter // /** * Find and return all children of the IDs given in `tableName`. * * If the `versioned` parameter is `TRUE`, also all archived (non-HEAD) children are added. */ -Create Procedure db_2_0.getChildren(in tableName varchar(255), in versioned BOOLEAN) +Create Procedure db_5_0.getChildren(in tableName varchar(255), in versioned BOOLEAN) BEGIN DECLARE found_children INT UNSIGNED DEFAULT 0; diff --git a/procedures/query/getDateTimeWhereClause.sql b/procedures/query/getDateTimeWhereClause.sql index ea81551..018fceb 100644 --- a/procedures/query/getDateTimeWhereClause.sql +++ b/procedures/query/getDateTimeWhereClause.sql @@ -21,10 +21,10 @@ * ** end header */ -DROP FUNCTION IF EXISTS db_2_0.getDateTimeWhereClause; +DROP FUNCTION IF EXISTS db_5_0.getDateTimeWhereClause; DELIMITER // -CREATE FUNCTION db_2_0.getDateTimeWhereClause(vDateTime VARCHAR(255), operator CHAR(4)) RETURNS VARCHAR(20000) DETERMINISTIC +CREATE FUNCTION db_5_0.getDateTimeWhereClause(vDateTime VARCHAR(255), operator CHAR(4)) RETURNS VARCHAR(20000) DETERMINISTIC BEGIN DECLARE sep_loc INTEGER DEFAULT LOCATE('--',vDateTime); DECLARE vDateTimeLow VARCHAR(255) DEFAULT IF(sep_loc != 0, SUBSTRING_INDEX(vDateTime, '--',1), vDateTime); @@ -45,10 +45,10 @@ DELIMITER ; -DROP FUNCTION IF EXISTS db_2_0.constructDateTimeWhereClauseForColumn; +DROP FUNCTION IF EXISTS db_5_0.constructDateTimeWhereClauseForColumn; DELIMITER // -CREATE FUNCTION db_2_0.constructDateTimeWhereClauseForColumn(seconds_col VARCHAR(255), nanos_col VARCHAR(255), vDateTimeSecLow VARCHAR(255), vDateTimeNSLow VARCHAR(255), vDateTimeSecUpp VARCHAR(255), vDateTimeNSUpp VARCHAR(255), operator CHAR(4)) RETURNS VARCHAR(20000) DETERMINISTIC +CREATE FUNCTION db_5_0.constructDateTimeWhereClauseForColumn(seconds_col VARCHAR(255), nanos_col VARCHAR(255), vDateTimeSecLow VARCHAR(255), vDateTimeNSLow VARCHAR(255), vDateTimeSecUpp VARCHAR(255), vDateTimeNSUpp VARCHAR(255), operator CHAR(4)) RETURNS VARCHAR(20000) DETERMINISTIC BEGIN DECLARE isInterval BOOLEAN DEFAULT vDateTimeSecUpp IS NOT NULL or vDateTimeNSUpp IS NOT NULL; @@ -107,10 +107,10 @@ DELIMITER ; -DROP FUNCTION IF EXISTS db_2_0.getDateWhereClause; +DROP FUNCTION IF EXISTS db_5_0.getDateWhereClause; DELIMITER // -CREATE FUNCTION db_2_0.getDateWhereClause(vDateTimeDotNotation VARCHAR(255), operator CHAR(4)) RETURNS VARCHAR(20000) DETERMINISTIC +CREATE FUNCTION db_5_0.getDateWhereClause(vDateTimeDotNotation VARCHAR(255), operator CHAR(4)) RETURNS VARCHAR(20000) DETERMINISTIC BEGIN DECLARE isInterval INTEGER DEFAULT LOCATE('--',vDateTimeDotNotation); -- ILB is short for Inclusive Lower Boundary diff --git a/procedures/query/getDoubleWhereClause.sql b/procedures/query/getDoubleWhereClause.sql index a9e7307..92d0554 100644 --- a/procedures/query/getDoubleWhereClause.sql +++ b/procedures/query/getDoubleWhereClause.sql @@ -21,10 +21,10 @@ * ** end header */ -DROP FUNCTION IF EXISTS db_2_0.getDoubleWhereClause; +DROP FUNCTION IF EXISTS db_5_0.getDoubleWhereClause; DELIMITER // -CREATE FUNCTION db_2_0.getDoubleWhereClause(value DOUBLE, unit_sig BIGINT, valueStdUnit DECIMAL(65,30), stdUnit_sig BIGINT, o CHAR(4)) RETURNS VARCHAR(20000) DETERMINISTIC +CREATE FUNCTION db_5_0.getDoubleWhereClause(value DOUBLE, unit_sig BIGINT, valueStdUnit DECIMAL(65,30), stdUnit_sig BIGINT, o CHAR(4)) RETURNS VARCHAR(20000) DETERMINISTIC BEGIN RETURN IF(unit_sig IS NULL AND value IS NOT NULL, CONCAT('subdata.value ', o, ' \'', value, '\''), #-- without unit but value must not be NULL diff --git a/procedures/query/initBackReference.sql b/procedures/query/initBackReference.sql index 63fa929..c425dbc 100644 --- a/procedures/query/initBackReference.sql +++ b/procedures/query/initBackReference.sql @@ -21,9 +21,9 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.initBackReference; +DROP PROCEDURE IF EXISTS db_5_0.initBackReference; DELIMITER // -CREATE PROCEDURE db_2_0.initBackReference(in pid INT UNSIGNED, in pname VARCHAR(255), in entity_id INT UNSIGNED, in ename VARCHAR(255)) +CREATE PROCEDURE db_5_0.initBackReference(in pid INT UNSIGNED, in pname VARCHAR(255), in entity_id INT UNSIGNED, in ename VARCHAR(255)) BEGIN DECLARE propertiesTable VARCHAR(255) DEFAULT NULL; DECLARE entitiesTable VARCHAR(255) DEFAULT NULL; diff --git a/procedures/query/initDisjunctionFilter.sql b/procedures/query/initDisjunctionFilter.sql index be7a0eb..bf0a435 100644 --- a/procedures/query/initDisjunctionFilter.sql +++ b/procedures/query/initDisjunctionFilter.sql @@ -23,10 +23,10 @@ -DROP PROCEDURE IF EXISTS db_2_0.initEmptyTargetSet; +DROP PROCEDURE IF EXISTS db_5_0.initEmptyTargetSet; DELIMITER // -CREATE PROCEDURE db_2_0.initEmptyTargetSet(in targetSet VARCHAR(255), in versioned BOOLEAN) +CREATE PROCEDURE db_5_0.initEmptyTargetSet(in targetSet VARCHAR(255), in versioned BOOLEAN) BEGIN DECLARE newTableName VARCHAR(255) DEFAULT targetSet; IF targetSet IS NOT NULL THEN @@ -46,10 +46,10 @@ END; // DELIMITER ; -DROP PROCEDURE IF EXISTS db_2_0.initDisjunctionFilter; +DROP PROCEDURE IF EXISTS db_5_0.initDisjunctionFilter; DELIMITER // -CREATE PROCEDURE db_2_0.initDisjunctionFilter(in versioned BOOLEAN) +CREATE PROCEDURE db_5_0.initDisjunctionFilter(in versioned BOOLEAN) BEGIN call initEmptyTargetSet(NULL, versioned); END; diff --git a/procedures/query/initEntity.sql b/procedures/query/initEntity.sql index b96b30d..65d03b8 100644 --- a/procedures/query/initEntity.sql +++ b/procedures/query/initEntity.sql @@ -21,7 +21,7 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.initEntity; +DROP PROCEDURE IF EXISTS db_5_0.initEntity; DELIMITER // /** @@ -30,7 +30,7 @@ DELIMITER // * If `versioned` is `TRUE`, also add archived entities (for example if the name was changed in the * past). */ -CREATE PROCEDURE db_2_0.initEntity(in eid INT UNSIGNED, in ename VARCHAR(255), +CREATE PROCEDURE db_5_0.initEntity(in eid INT UNSIGNED, in ename VARCHAR(255), in enameLike VARCHAR(255), in enameRegexp VARCHAR(255), in resultset VARCHAR(255), in versioned BOOLEAN) initEntityLabel: BEGIN @@ -134,4 +134,4 @@ DELIMITER ; -DROP PROCEDURE IF EXISTS db_2_0.applyRole; +DROP PROCEDURE IF EXISTS db_5_0.applyRole; diff --git a/procedures/query/initPOV.sql b/procedures/query/initPOV.sql index 0d7dea3..52d6a26 100644 --- a/procedures/query/initPOV.sql +++ b/procedures/query/initPOV.sql @@ -23,9 +23,9 @@ DELIMITER // -DROP PROCEDURE IF EXISTS db_2_0.initPOVPropertiesTable// +DROP PROCEDURE IF EXISTS db_5_0.initPOVPropertiesTable// -CREATE PROCEDURE db_2_0.initPOVPropertiesTable(in pid INT UNSIGNED, in pname VARCHAR(255), in sourceSet VARCHAR(255)) +CREATE PROCEDURE db_5_0.initPOVPropertiesTable(in pid INT UNSIGNED, in pname VARCHAR(255), in sourceSet VARCHAR(255)) BEGIN DECLARE propertiesTable VARCHAR(255) DEFAULT NULL; /*table for property ids*/ DECLARE replTbl VARCHAR(255) DEFAULT NULL; @@ -89,9 +89,9 @@ END // -DROP PROCEDURE IF EXISTS db_2_0.initPOVRefidsTable // +DROP PROCEDURE IF EXISTS db_5_0.initPOVRefidsTable // -CREATE PROCEDURE db_2_0.initPOVRefidsTable(in vInt INT UNSIGNED, in vText VARCHAR(255)) +CREATE PROCEDURE db_5_0.initPOVRefidsTable(in vInt INT UNSIGNED, in vText VARCHAR(255)) BEGIN DECLARE refIdsTable VARCHAR(255) DEFAULT NULL; /*table for referenced entity ids*/ diff --git a/procedures/query/initQuery.sql b/procedures/query/initQuery.sql index 37653a3..8c01074 100644 --- a/procedures/query/initQuery.sql +++ b/procedures/query/initQuery.sql @@ -29,10 +29,10 @@ -DROP PROCEDURE IF EXISTS db_2_0.initQuery; +DROP PROCEDURE IF EXISTS db_5_0.initQuery; DELIMITER // -CREATE PROCEDURE db_2_0.initQuery(in versioned BOOLEAN) +CREATE PROCEDURE db_5_0.initQuery(in versioned BOOLEAN) BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS warnings (warning TEXT NOT NULL); diff --git a/procedures/query/initSubEntity.sql b/procedures/query/initSubEntity.sql index 3cb31aa..a2f5ea6 100644 --- a/procedures/query/initSubEntity.sql +++ b/procedures/query/initSubEntity.sql @@ -22,11 +22,11 @@ */ -DROP PROCEDURE IF EXISTS db_2_0.initSubEntity; +DROP PROCEDURE IF EXISTS db_5_0.initSubEntity; DELIMITER // -CREATE PROCEDURE db_2_0.initSubEntity(in e_id INT UNSIGNED, in ename VARCHAR(255), in tableName VARCHAR(255)) +CREATE PROCEDURE db_5_0.initSubEntity(in e_id INT UNSIGNED, in ename VARCHAR(255), in tableName VARCHAR(255)) BEGIN DECLARE ecount INT DEFAULT 0; DECLARE op VARCHAR(255) DEFAULT '='; diff --git a/procedures/query/initSubProperty.sql b/procedures/query/initSubProperty.sql index b849d89..8e87d47 100644 --- a/procedures/query/initSubProperty.sql +++ b/procedures/query/initSubProperty.sql @@ -21,10 +21,10 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.initSubProperty; +DROP PROCEDURE IF EXISTS db_5_0.initSubProperty; DELIMITER // -CREATE PROCEDURE db_2_0.initSubProperty(in sourceSet VARCHAR(255), in propertiesTable VARCHAR(255), in refIdsTable VARCHAR(255)) +CREATE PROCEDURE db_5_0.initSubProperty(in sourceSet VARCHAR(255), in propertiesTable VARCHAR(255), in refIdsTable VARCHAR(255)) BEGIN DECLARE newTableName VARCHAR(255) DEFAULT NULL; call registerTempTableName(newTableName); diff --git a/procedures/query/intersectTable.sql b/procedures/query/intersectTable.sql index 333ee96..7d28372 100644 --- a/procedures/query/intersectTable.sql +++ b/procedures/query/intersectTable.sql @@ -22,10 +22,10 @@ */ -DROP PROCEDURE IF EXISTS db_2_0.intersectTable; +DROP PROCEDURE IF EXISTS db_5_0.intersectTable; DELIMITER // -CREATE PROCEDURE db_2_0.intersectTable(in resultSetTable VARCHAR(255), in diff VARCHAR(255)) +CREATE PROCEDURE db_5_0.intersectTable(in resultSetTable VARCHAR(255), in diff VARCHAR(255)) BEGIN SET @diffStmtStr = CONCAT('DELETE FROM `', resultSetTable, '` WHERE id NOT IN ( SELECT id FROM `', diff,'`)'); PREPARE diffStmt FROM @diffStmtStr; diff --git a/procedures/query/makeStmt.sql b/procedures/query/makeStmt.sql index f6d6ab7..8e54ef3 100644 --- a/procedures/query/makeStmt.sql +++ b/procedures/query/makeStmt.sql @@ -20,7 +20,7 @@ * * ** end header */ -DROP FUNCTION IF EXISTS db_2_0.makeStmt; +DROP FUNCTION IF EXISTS db_5_0.makeStmt; DELIMITER // /** @@ -48,7 +48,7 @@ DELIMITER // * If `True` and if `sourceSet` is the `entities` table, the ID and version are copied directly from * `data` to `targetSet`, which must not be `NULL`. Property filtering is done as usual. */ -CREATE FUNCTION db_2_0.makeStmt(sourceSet VARCHAR(255), targetSet VARCHAR(255), data VARCHAR(20000), +CREATE FUNCTION db_5_0.makeStmt(sourceSet VARCHAR(255), targetSet VARCHAR(255), data VARCHAR(20000), properties VARCHAR(20000), versioned BOOLEAN) RETURNS VARCHAR(20000) NO SQL BEGIN diff --git a/procedures/query/raiseWarning.sql b/procedures/query/raiseWarning.sql index 1e50fd3..63f1239 100644 --- a/procedures/query/raiseWarning.sql +++ b/procedures/query/raiseWarning.sql @@ -20,10 +20,10 @@ * * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.raiseWarning; +DROP PROCEDURE IF EXISTS db_5_0.raiseWarning; DELIMITER // -CREATE PROCEDURE db_2_0.raiseWarning(in str VARCHAR(20000)) +CREATE PROCEDURE db_5_0.raiseWarning(in str VARCHAR(20000)) BEGIN INSERT INTO warnings VALUES (str); END; diff --git a/procedures/query/unit_functions.sql b/procedures/query/unit_functions.sql index f62571b..2d207e6 100644 --- a/procedures/query/unit_functions.sql +++ b/procedures/query/unit_functions.sql @@ -22,9 +22,9 @@ */ DELIMITER // -DROP FUNCTION IF EXISTS db_2_0.convert_unit// +DROP FUNCTION IF EXISTS db_5_0.convert_unit// -CREATE FUNCTION db_2_0.convert_unit(unit_sig BIGINT, value DECIMAL(65,30)) RETURNS DECIMAL(65,30) DETERMINISTIC +CREATE FUNCTION db_5_0.convert_unit(unit_sig BIGINT, value DECIMAL(65,30)) RETURNS DECIMAL(65,30) DETERMINISTIC #-- returns NULL IFF unit_sig IS NULL; BEGIN DECLARE ret DECIMAL(65,30) DEFAULT value; @@ -34,9 +34,9 @@ BEGIN END; // -DROP FUNCTION IF EXISTS db_2_0.standard_unit// +DROP FUNCTION IF EXISTS db_5_0.standard_unit// -CREATE FUNCTION db_2_0.standard_unit(unit_sig BIGINT) RETURNS BIGINT DETERMINISTIC +CREATE FUNCTION db_5_0.standard_unit(unit_sig BIGINT) RETURNS BIGINT DETERMINISTIC #-- returns NULL IFF the unit cannot be converted to any other unit (especially because it is a base unit or yet in its standard form). BEGIN DECLARE ret BIGINT DEFAULT unit_sig; diff --git a/procedures/registerSubdomain.sql b/procedures/registerSubdomain.sql index 70e8686..4cb18e4 100644 --- a/procedures/registerSubdomain.sql +++ b/procedures/registerSubdomain.sql @@ -28,10 +28,10 @@ -DROP PROCEDURE IF EXISTS db_2_0.registerSubdomain; +DROP PROCEDURE IF EXISTS db_5_0.registerSubdomain; delimiter // -CREATE PROCEDURE db_2_0.registerSubdomain(in amount INT UNSIGNED) +CREATE PROCEDURE db_5_0.registerSubdomain(in amount INT UNSIGNED) BEGIN DECLARE ED INTEGER DEFAULT NULL; diff --git a/procedures/retrieveDatatype.sql b/procedures/retrieveDatatype.sql index 6ee4380..c0ed52c 100644 --- a/procedures/retrieveDatatype.sql +++ b/procedures/retrieveDatatype.sql @@ -27,9 +27,9 @@ -DROP PROCEDURE IF EXISTS db_2_0.retrieveDatatype; +DROP PROCEDURE IF EXISTS db_5_0.retrieveDatatype; delimiter // -CREATE PROCEDURE db_2_0.retrieveDatatype(in DatatypeName VARCHAR(255)) +CREATE PROCEDURE db_5_0.retrieveDatatype(in DatatypeName VARCHAR(255)) BEGIN Select e.id INTO @DatatypeID from entities e where e.name=DatatypeName AND e.role='DATATYPE' LIMIT 1; diff --git a/procedures/retrieveEntity.sql b/procedures/retrieveEntity.sql index 4118cb3..42b283d 100644 --- a/procedures/retrieveEntity.sql +++ b/procedures/retrieveEntity.sql @@ -27,7 +27,7 @@ delimiter // -drop procedure if exists db_2_0.retrieveEntity // +drop procedure if exists db_5_0.retrieveEntity // /** * Select the content of an entity. @@ -48,7 +48,7 @@ drop procedure if exists db_2_0.retrieveEntity // * Tuple of (Datatype, Collection, EntityID, EntityName, EntityDesc, * EntityRole, FileSize, FilePath, FileHash, ACL, Version) */ -create procedure db_2_0.retrieveEntity( +create procedure db_5_0.retrieveEntity( in EntityID INT UNSIGNED, in Version VARBINARY(255)) retrieveEntityBody: BEGIN diff --git a/procedures/retrieveEntityOverrides.sql b/procedures/retrieveEntityOverrides.sql index 2f6b36d..6964475 100644 --- a/procedures/retrieveEntityOverrides.sql +++ b/procedures/retrieveEntityOverrides.sql @@ -23,10 +23,10 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.retrieveOverrides; +DROP PROCEDURE IF EXISTS db_5_0.retrieveOverrides; delimiter // -CREATE PROCEDURE db_2_0.retrieveOverrides( +CREATE PROCEDURE db_5_0.retrieveOverrides( in DomainID INT UNSIGNED, in EntityID INT UNSIGNED, in Version VARBINARY(255)) diff --git a/procedures/retrieveEntityParents.sql b/procedures/retrieveEntityParents.sql index 8303f87..12b5c28 100644 --- a/procedures/retrieveEntityParents.sql +++ b/procedures/retrieveEntityParents.sql @@ -24,7 +24,7 @@ */ -DROP PROCEDURE IF EXISTS db_2_0.retrieveEntityParents; +DROP PROCEDURE IF EXISTS db_5_0.retrieveEntityParents; DELIMITER // /* Retrieve the parents of an Entity. @@ -52,7 +52,7 @@ ParentRole : ACL : Access control list something */ -CREATE PROCEDURE db_2_0.retrieveEntityParents( +CREATE PROCEDURE db_5_0.retrieveEntityParents( in EntityID INT UNSIGNED, in Version VARBINARY(255)) retrieveEntityParentsBody: BEGIN diff --git a/procedures/retrieveEntityProperties.sql b/procedures/retrieveEntityProperties.sql index 3d8eeff..b8bc565 100644 --- a/procedures/retrieveEntityProperties.sql +++ b/procedures/retrieveEntityProperties.sql @@ -26,9 +26,9 @@ delimiter // -drop procedure if exists db_2_0.retrieveEntityProperties // +drop procedure if exists db_5_0.retrieveEntityProperties // -create procedure db_2_0.retrieveEntityProperties( +create procedure db_5_0.retrieveEntityProperties( in DomainID INT UNSIGNED, in EntityID INT UNSIGNED, in Version VARBINARY(255)) diff --git a/procedures/retrieveGroup.sql b/procedures/retrieveGroup.sql index 85861ab..bd59c47 100644 --- a/procedures/retrieveGroup.sql +++ b/procedures/retrieveGroup.sql @@ -21,9 +21,9 @@ * ** end header */ -Drop Procedure if exists db_2_0.retrieveGroup; +Drop Procedure if exists db_5_0.retrieveGroup; Delimiter // -Create Procedure db_2_0.retrieveGroup(in USERID INT UNSIGNED, in GROUPID INT UNSIGNED) +Create Procedure db_5_0.retrieveGroup(in USERID INT UNSIGNED, in GROUPID INT UNSIGNED) BEGIN diff --git a/procedures/retrieveSubentity.sql b/procedures/retrieveSubentity.sql index 64cf173..406d668 100644 --- a/procedures/retrieveSubentity.sql +++ b/procedures/retrieveSubentity.sql @@ -21,9 +21,9 @@ * ** end header */ DELIMITER // -DROP PROCEDURE IF EXISTS db_2_0.retrieveSubEntity // +DROP PROCEDURE IF EXISTS db_5_0.retrieveSubEntity // /** -CREATE PROCEDURE db_2_0.retrieveSubEntity(in EntityID INT UNSIGNED, in DomainID INT UNSIGNED) +CREATE PROCEDURE db_5_0.retrieveSubEntity(in EntityID INT UNSIGNED, in DomainID INT UNSIGNED) BEGIN DECLARE FilePath VARCHAR(255) DEFAULT NULL; DECLARE FileSize VARCHAR(255) DEFAULT NULL; diff --git a/procedures/setPassword.sql b/procedures/setPassword.sql index 71cfc8e..33345d9 100644 --- a/procedures/setPassword.sql +++ b/procedures/setPassword.sql @@ -22,10 +22,10 @@ */ -DROP PROCEDURE IF EXISTS db_2_0.setPassword; +DROP PROCEDURE IF EXISTS db_5_0.setPassword; delimiter // -CREATE PROCEDURE db_2_0.setPassword(in EntityID INT UNSIGNED, in NewPassword VARCHAR(255)) +CREATE PROCEDURE db_5_0.setPassword(in EntityID INT UNSIGNED, in NewPassword VARCHAR(255)) BEGIN diff --git a/procedures/showEntityAutoIncr.sql b/procedures/showEntityAutoIncr.sql index eb50e68..1d4609b 100644 --- a/procedures/showEntityAutoIncr.sql +++ b/procedures/showEntityAutoIncr.sql @@ -22,14 +22,14 @@ */ -DROP PROCEDURE IF EXISTS db_2_0.showEntityAutoIncr; +DROP PROCEDURE IF EXISTS db_5_0.showEntityAutoIncr; delimiter // -CREATE PROCEDURE db_2_0.showEntityAutoIncr() +CREATE PROCEDURE db_5_0.showEntityAutoIncr() BEGIN SELECT `AUTO_INCREMENT` FROM INFORMATION_SCHEMA.TABLES -WHERE TABLE_SCHEMA = 'db_2_0' +WHERE TABLE_SCHEMA = 'db_5_0' AND TABLE_NAME = 'entities'; diff --git a/procedures/updateEntity.sql b/procedures/updateEntity.sql index 226208e..f98e479 100644 --- a/procedures/updateEntity.sql +++ b/procedures/updateEntity.sql @@ -23,7 +23,7 @@ * ** end header */ -DROP PROCEDURE IF EXISTS db_2_0.updateEntity; +DROP PROCEDURE IF EXISTS db_5_0.updateEntity; delimiter // /* @@ -33,7 +33,7 @@ delimiter // * * Selects the new version identifier for the entity. */ -CREATE PROCEDURE db_2_0.updateEntity( +CREATE PROCEDURE db_5_0.updateEntity( in EntityID INT UNSIGNED, in EntityName VARCHAR(255), in EntityDescription TEXT, diff --git a/utils/make_db b/utils/make_db index a9bac2f..c9fffc4 100755 --- a/utils/make_db +++ b/utils/make_db @@ -30,7 +30,7 @@ set -e -INSTALL_SQL_FILE="db_2_0.sql" +INSTALL_SQL_FILE="db_5_0.sql" if [ -z "$UTILSPATH" ]; then UTILSPATH="$(realpath $(dirname $0))" @@ -87,7 +87,7 @@ function _install_unit_test_database () { if _db_exists "$DATABASE_NAME"; then echo "using $DATABASE_NAME" else - sed "s/db_2_0/$DATABASE_NAME/g" "$INSTALL_SQL_FILE" | $MYSQL_CMD $(get_mysql_args_nodb) + sed "s/db_5_0/$DATABASE_NAME/g" "$INSTALL_SQL_FILE" | $MYSQL_CMD $(get_mysql_args_nodb) # create test user grant @@ -129,7 +129,7 @@ name in your .config file " exit 0 fi - sed "s/db_2_0/$DATABASE_NAME/g" "$INSTALL_SQL_FILE" | $MYSQL_CMD $(get_mysql_args_nodb) + sed "s/db_5_0/$DATABASE_NAME/g" "$INSTALL_SQL_FILE" | $MYSQL_CMD $(get_mysql_args_nodb) } # Inserts the dump (arg 1) into the database diff --git a/utils/update_sql_procedures.sh b/utils/update_sql_procedures.sh index 06c07f9..b9a9e7f 100755 --- a/utils/update_sql_procedures.sh +++ b/utils/update_sql_procedures.sh @@ -39,7 +39,7 @@ source $UTILSPATH/helpers.sh echo -n "updating procedures ... " temp_proc_sql=$(mktemp --suffix=.sql) -sed -e "s/db_2_0/$DATABASE_NAME/g" procedures/*.sql procedures/query/*.sql \ +sed -e "s/db_5_0/$DATABASE_NAME/g" procedures/*.sql procedures/query/*.sql \ > "$temp_proc_sql" mysql_execute_file "$temp_proc_sql" # We keep this for debugging purposes... -- GitLab