From 753eaaa3817ab1daf47c751682da831b311573b5 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Thu, 4 Jun 2020 22:02:28 +0200
Subject: [PATCH] WIP: versioning phase 8

---
 patches/patch20200426-3.0.0/versioning.sql |  7 +++----
 tests/test_autotap.sql                     | 17 +++++++++++++++--
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/patches/patch20200426-3.0.0/versioning.sql b/patches/patch20200426-3.0.0/versioning.sql
index 3bfcc13..a5bb034 100644
--- a/patches/patch20200426-3.0.0/versioning.sql
+++ b/patches/patch20200426-3.0.0/versioning.sql
@@ -41,10 +41,9 @@ CREATE TABLE entity_version (
 ) ENGINE=InnoDB;
 
 ALTER TABLE reference_data
-    ADD COLUMN `value_iversion` INT UNSIGNED DEFAULT NULL;
--- TODO
---    ADD FOREIGN KEY (`value`, `value_iversion) REFERENCES
---        entity_version (`entity_id`, `_iversion`);
+    ADD COLUMN `value_iversion` INT UNSIGNED DEFAULT NULL,
+    ADD FOREIGN KEY (`value`, `value_iversion`) REFERENCES
+        entity_version (`entity_id`, `_iversion`);
 
 
 CREATE TABLE archive_isa (
diff --git a/tests/test_autotap.sql b/tests/test_autotap.sql
index 0c9a263..e23ef3b 100644
--- a/tests/test_autotap.sql
+++ b/tests/test_autotap.sql
@@ -1647,7 +1647,7 @@ SELECT tap.col_charset_is('_caosdb_schema_unit_tests','reference_data','value_iv
 SELECT tap.col_collation_is('_caosdb_schema_unit_tests','reference_data','value_iversion',NULL,'');
 
 -- INDEXES
-SELECT tap.indexes_are('_caosdb_schema_unit_tests','reference_data','`entity_id`','');
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','reference_data','`entity_id`,`value`','');
 
 -- INDEX reference_data.entity_id
 
@@ -1655,8 +1655,14 @@ SELECT tap.has_index('_caosdb_schema_unit_tests','reference_data','entity_id',''
 SELECT tap.index_is_type('_caosdb_schema_unit_tests','reference_data','entity_id','BTREE','');
 SELECT tap.is_indexed('_caosdb_schema_unit_tests','reference_data','`entity_id`,`property_id`','');
 
+-- INDEX reference_data.value
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','reference_data','value','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','reference_data','value','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','reference_data','`value`,`value_iversion`','');
+
 -- CONSTRAINTS
-SELECT tap.constraints_are('_caosdb_schema_unit_tests','reference_data','`ref_domain_id_entity`,`ref_entity_id_entity`,`ref_property_id_entity`,`ref_value_entity`','');
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','reference_data','`ref_domain_id_entity`,`ref_entity_id_entity`,`ref_property_id_entity`,`ref_value_entity`,`reference_data_ibfk_1`','');
 
 -- CONSTRAINT reference_data.ref_domain_id_entity
 
@@ -1686,6 +1692,13 @@ SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','reference_data','ref_
 SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','reference_data','ref_value_entity','RESTRICT','');
 SELECT tap.fk_on_update('_caosdb_schema_unit_tests','reference_data','ref_value_entity','RESTRICT','');
 
+-- CONSTRAINT reference_data_ibfk_1
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','reference_data','reference_data_ibfk_1','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','reference_data','reference_data_ibfk_1','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','reference_data','reference_data_ibfk_1','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','reference_data','reference_data_ibfk_1','RESTRICT','');
+
+
 -- ***************************************************************
 -- TABLE _caosdb_schema_unit_tests.roles
 -- ***************************************************************
-- 
GitLab