From 5dd43882a2dd4a5fc0f86ceba5afcd4d9b2eeef7 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Wed, 11 Nov 2020 12:29:56 +0100 Subject: [PATCH] clean up and update tests --- procedures/deleteIsaCache.sql | 1 - procedures/query/applyIDFilter.sql | 2 +- procedures/query/applyPOV.sql | 1 - procedures/query/initPOV.sql | 2 +- tests/test_autotap.sql | 85 ++++++++++++++++++++++++++++++ 5 files changed, 87 insertions(+), 4 deletions(-) diff --git a/procedures/deleteIsaCache.sql b/procedures/deleteIsaCache.sql index 1306b59..1ffff23 100644 --- a/procedures/deleteIsaCache.sql +++ b/procedures/deleteIsaCache.sql @@ -52,7 +52,6 @@ BEGIN -- move to archive_isa before deleting INSERT IGNORE INTO archive_isa (child, child_iversion, parent, direct) - -- TODO copy rpath as well SELECT e.child, IVersion AS child_iversion, e.parent, rpath = EntityID FROM isa_cache AS e WHERE e.child = EntityID; diff --git a/procedures/query/applyIDFilter.sql b/procedures/query/applyIDFilter.sql index 8b8cf18..0badff0 100644 --- a/procedures/query/applyIDFilter.sql +++ b/procedures/query/applyIDFilter.sql @@ -33,7 +33,7 @@ DECLARE aggVal VARCHAR(255) DEFAULT NULL; #-- get aggVal if possible IF agg IS NOT NULL THEN IF versioned THEN - -- TODO + -- TODO versioned queries SELECT 1 FROM id_agg_with_versioning_not_implemented; END IF; SET @stmtIDAggValStr = CONCAT( diff --git a/procedures/query/applyPOV.sql b/procedures/query/applyPOV.sql index 9bf89c7..a2b6b29 100644 --- a/procedures/query/applyPOV.sql +++ b/procedures/query/applyPOV.sql @@ -103,7 +103,6 @@ POV_LABEL: BEGIN ELSEIF o = "(" or o = "!(" THEN IF versioned THEN - -- TODO is vText = NULL even possible? SET sTextData = IF(vText IS NULL, ' SELECT DISTINCT domain_id, entity_id, _get_head_iversion(entity_id) AS _iversion, property_id FROM `date_data` UNION ALL SELECT DISTINCT domain_id, entity_id, _iversion, property_id FROM `archive_date_data`', IF(vDateTimeDotNotation IS NULL, NULL, CONCAT(' SELECT DISTINCT domain_id, entity_id, _get_head_iversion(entity_id) AS _iversion, property_id FROM `date_data` AS subdata WHERE ', getDateWhereClause(vDateTimeDotNotation, o), ' UNION ALL SELECT DISTINCT domain_id, entity_id, _iversion, property_id FROM `archive_date_data` AS subdata WHERE ', getDateWhereClause(vDateTimeDotNotation, o)))); diff --git a/procedures/query/initPOV.sql b/procedures/query/initPOV.sql index 76f2d8c..0d7dea3 100644 --- a/procedures/query/initPOV.sql +++ b/procedures/query/initPOV.sql @@ -62,7 +62,7 @@ BEGIN -- expand with all children SELECT conv( concat( substring(uid,16,3), substring(uid,10,4), substring(uid,1,8)),16,10) div 10000 - (141427 * 24 * 60 * 60 * 1000) as current_mills INTO t3 from (select uuid() uid) as alias; IF ecount > 0 THEN - -- TODO versioning + -- TODO versioned queries call getChildren(propertiesTable, False); END IF; diff --git a/tests/test_autotap.sql b/tests/test_autotap.sql index 91354b1..6345bf0 100644 --- a/tests/test_autotap.sql +++ b/tests/test_autotap.sql @@ -33,6 +33,84 @@ SELECT tap.has_schema('_caosdb_schema_unit_tests',''); -- TABLES -- *************************************************************** +-- *************************************************************** +-- TABLE _caosdb_schema_unit_tests.archive_isa +-- *************************************************************** + +SELECT tap.has_table('_caosdb_schema_unit_tests','archive_isa',''); +SELECT tap.table_collation_is('_caosdb_schema_unit_tests','archive_isa','utf8_unicode_ci',''); +SELECT tap.table_engine_is('_caosdb_schema_unit_tests','archive_isa','InnoDB',''); + +-- COLUMNS +SELECT tap.columns_are('_caosdb_schema_unit_tests','archive_isa','`child`,`child_iversion`,`parent`,`direct`',''); + +-- COLUMN archive_isa.child + +SELECT tap.has_column('_caosdb_schema_unit_tests','archive_isa','child',''); +SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','archive_isa','child','int(10) unsigned',''); +SELECT tap.col_extra_is('_caosdb_schema_unit_tests','archive_isa','child','',''); +SELECT tap.col_default_is('_caosdb_schema_unit_tests','archive_isa','child',NULL,''); +SELECT tap.col_charset_is('_caosdb_schema_unit_tests','archive_isa','child',NULL,''); +SELECT tap.col_collation_is('_caosdb_schema_unit_tests','archive_isa','child',NULL,''); + +-- COLUMN archive_isa.child_iversion + +SELECT tap.has_column('_caosdb_schema_unit_tests','archive_isa','child_iversion',''); +SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','archive_isa','child_iversion','int(10) unsigned',''); +SELECT tap.col_extra_is('_caosdb_schema_unit_tests','archive_isa','child_iversion','',''); +SELECT tap.col_default_is('_caosdb_schema_unit_tests','archive_isa','child_iversion',NULL,''); +SELECT tap.col_charset_is('_caosdb_schema_unit_tests','archive_isa','child_iversion',NULL,''); +SELECT tap.col_collation_is('_caosdb_schema_unit_tests','archive_isa','child_iversion',NULL,''); + +-- COLUMN archive_isa.parent + +SELECT tap.has_column('_caosdb_schema_unit_tests','archive_isa','parent',''); +SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','archive_isa','parent','int(10) unsigned',''); +SELECT tap.col_extra_is('_caosdb_schema_unit_tests','archive_isa','parent','',''); +SELECT tap.col_default_is('_caosdb_schema_unit_tests','archive_isa','parent',NULL,''); +SELECT tap.col_charset_is('_caosdb_schema_unit_tests','archive_isa','parent',NULL,''); +SELECT tap.col_collation_is('_caosdb_schema_unit_tests','archive_isa','parent',NULL,''); + +-- COLUMN archive_isa.direct + +SELECT tap.has_column('_caosdb_schema_unit_tests','archive_isa','direct',''); +SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','archive_isa','direct','tinyint(1)',''); +SELECT tap.col_extra_is('_caosdb_schema_unit_tests','archive_isa','direct','',''); +SELECT tap.col_default_is('_caosdb_schema_unit_tests','archive_isa','direct',1,''); +SELECT tap.col_charset_is('_caosdb_schema_unit_tests','archive_isa','direct',NULL,''); +SELECT tap.col_collation_is('_caosdb_schema_unit_tests','archive_isa','direct',NULL,''); + +-- INDEXES +SELECT tap.indexes_are('_caosdb_schema_unit_tests','archive_isa','`parent`,`child`',''); + +-- INDEX archive_isa.child + +SELECT tap.has_index('_caosdb_schema_unit_tests','archive_isa','child',''); +SELECT tap.index_is_type('_caosdb_schema_unit_tests','archive_isa','child','BTREE',''); +SELECT tap.is_indexed('_caosdb_schema_unit_tests','archive_isa','`child`,`child_iversion`',''); + +-- INDEX archive_isa.parent + +SELECT tap.has_index('_caosdb_schema_unit_tests','archive_isa','parent',''); +SELECT tap.index_is_type('_caosdb_schema_unit_tests','archive_isa','parent','BTREE',''); +SELECT tap.is_indexed('_caosdb_schema_unit_tests','archive_isa','`parent`',''); + +-- CONSTRAINTS +SELECT tap.constraints_are('_caosdb_schema_unit_tests','archive_isa','`archive_isa_ibfk_1`,`archive_isa_ibfk_2`',''); + +-- CONSTRAINT archive_isa.archive_isa_ibfk_1 + +SELECT tap.has_constraint('_caosdb_schema_unit_tests','archive_isa','archive_isa_ibfk_1',''); +SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','archive_isa','archive_isa_ibfk_1','FOREIGN KEY',''); +SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','archive_isa','archive_isa_ibfk_1','CASCADE',''); +SELECT tap.fk_on_update('_caosdb_schema_unit_tests','archive_isa','archive_isa_ibfk_1','RESTRICT',''); + +-- CONSTRAINT archive_isa.archive_isa_ibfk_2 + +SELECT tap.has_constraint('_caosdb_schema_unit_tests','archive_isa','archive_isa_ibfk_2',''); +SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','archive_isa','archive_isa_ibfk_2','FOREIGN KEY',''); +SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','archive_isa','archive_isa_ibfk_2','CASCADE',''); +SELECT tap.fk_on_update('_caosdb_schema_unit_tests','archive_isa','archive_isa_ibfk_2','RESTRICT',''); -- *************************************************************** -- TABLE _caosdb_schema_unit_tests.collection_type -- *************************************************************** @@ -2588,6 +2666,13 @@ SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initBackRefer SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initBackReference','DEFINER',''); SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initBackReference','CONTAINS SQL',''); +-- PROCEDURES _caosdb_schema_unit_tests.initDisjunctionFilter + +SELECT tap.has_procedure('_caosdb_schema_unit_tests','initDisjunctionFilter',''); +SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initDisjunctionFilter','NO',''); +SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initDisjunctionFilter','DEFINER',''); +SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initDisjunctionFilter','CONTAINS SQL',''); + -- PROCEDURES _caosdb_schema_unit_tests.initPOVRefidsTable SELECT tap.has_procedure('_caosdb_schema_unit_tests','initPOVRefidsTable',''); -- GitLab