diff --git a/src/main/java/org/ihtsdo/rvf/core/service/AssertionExecutionService.java b/src/main/java/org/ihtsdo/rvf/core/service/AssertionExecutionService.java index 0e42697e9..1b27d68c4 100644 --- a/src/main/java/org/ihtsdo/rvf/core/service/AssertionExecutionService.java +++ b/src/main/java/org/ihtsdo/rvf/core/service/AssertionExecutionService.java @@ -196,10 +196,12 @@ private void executeCommand(final Assertion assertion, final MysqlExecutionConfi } } else { - if (sqlStatement.startsWith("create table") + if (sqlStatement.startsWith("create table")) { // only add engine if we do not create using a like statement - && (!(sqlStatement.contains("like") || sqlStatement.contains("as")))){ - sqlStatement = sqlStatement + " ENGINE = MyISAM"; + if (!sqlStatement.toUpperCase().contains(" ENGINE") && + !(sqlStatement.contains("like") || sqlStatement.contains("as"))) { + sqlStatement = sqlStatement + " ENGINE = MyISAM"; + } } executeUpdateStatement(connection, sqlStatement); } diff --git a/src/main/java/org/ihtsdo/rvf/core/service/util/RF2FileTableMapper.java b/src/main/java/org/ihtsdo/rvf/core/service/util/RF2FileTableMapper.java index 65595c798..4d0661e27 100644 --- a/src/main/java/org/ihtsdo/rvf/core/service/util/RF2FileTableMapper.java +++ b/src/main/java/org/ihtsdo/rvf/core/service/util/RF2FileTableMapper.java @@ -1,7 +1,7 @@ package org.ihtsdo.rvf.core.service.util; import java.util.Collection; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import java.util.regex.Pattern; @@ -11,6 +11,7 @@ public class RF2FileTableMapper { private static final String STATED_RELATIONSHIP_FILE_HEADER = "sct2_StatedRelationship_"; private static final String SIMPLE_FILE_HEADER = "der2_Refset_.*Simple"; private static final String SIMPLE_MAP_FILE_HEADER = "der2_sRefset_.*SimpleMap"; + private static final String INTEGER_SIMPLE_MAP_FILE_HEADER = "der2_iRefset_.*SimpleMap"; private static final String RELATIONSHIP_FILE_HEADER = "sct2_Relationship_"; private static final String RELATIONSHIP_CONCRETE_VALUES_FILE_HEADER = "sct2_RelationshipConcreteValues"; private static final String LANGUAGE_FILE_HEADER = "der2_cRefset_.*Language"; @@ -30,7 +31,14 @@ public class RF2FileTableMapper { private static final String MRCM_ATRRIBUTE_RANGE_FILE_HEADER = "der2_ssccRefset_.*MRCMAttributeRange"; private static final String MRCM_DOMAIN_FILE_HEADER = "der2_sssssssRefset_.*MRCMDomain"; private static final String DESCRIPTION_TYPE_FILE_HEADER = "der2_ciRefset_.*DescriptionType"; - private static final Map tableNameMap = new HashMap<>(); + private static final String ATTRIBUTE_VALUE_MAP_FILE_HEADER = "der2_csRefset_.*AttributeValueMap"; + private static final String EXTENDED_ASSOCIATION_FILE_HEADER = "der2_ccRefset_.*ExtendedAssociation"; + private static final String IDENTIFIER_FILE_HEADER = "sct2_Identifier_"; + private static final String CCS_REFSET_FILE_HEADER = "der2_ccsRefset_"; + private static final String CCI_REFSET_FILE_HEADER = "der2_cciRefset_"; + private static final String C_REFSET_FILE_HEADER = "der2_cRefset_"; + + private static final Map tableNameMap = new LinkedHashMap<>(); private static final String DELTA = ".*Delta.*_*_\\d{8}.txt"; private static final String SNAPSHOT = ".*Snapshot.*_*_\\d{8}.txt"; private static final String FULL = ".*Full.*_*_\\d{8}.txt"; @@ -60,7 +68,14 @@ public class RF2FileTableMapper { tableNameMap.put(MRCM_ATRRIBUTE_RANGE_FILE_HEADER + DELTA, "mrcmattributerangerefset_d"); tableNameMap.put(MRCM_DOMAIN_FILE_HEADER + DELTA, "mrcmdomainrefset_d"); tableNameMap.put(DESCRIPTION_TYPE_FILE_HEADER + DELTA, "descriptiontyperefset_d"); - + tableNameMap.put(ATTRIBUTE_VALUE_MAP_FILE_HEADER + DELTA, "attributevaluemap_d"); + tableNameMap.put(EXTENDED_ASSOCIATION_FILE_HEADER + DELTA, "extendedassociation_d"); + tableNameMap.put(IDENTIFIER_FILE_HEADER + DELTA, "identifier_d"); + tableNameMap.put(INTEGER_SIMPLE_MAP_FILE_HEADER + DELTA, "isimplemaprefset_d"); + tableNameMap.put(CCS_REFSET_FILE_HEADER + DELTA, "ccsrefset_d"); + tableNameMap.put(CCI_REFSET_FILE_HEADER + DELTA, "ccirefset_d"); + tableNameMap.put(C_REFSET_FILE_HEADER + DELTA, "crefset_d"); + //Full tableNameMap.put(CONCEPT_FILE_HEADER + FULL, "concept_f"); tableNameMap.put(DESCRIPTION_FILE_HEADER + FULL, "description_f"); @@ -85,7 +100,14 @@ public class RF2FileTableMapper { tableNameMap.put(MRCM_ATRRIBUTE_RANGE_FILE_HEADER + FULL, "mrcmattributerangerefset_f"); tableNameMap.put(MRCM_DOMAIN_FILE_HEADER + FULL, "mrcmdomainrefset_f"); tableNameMap.put(DESCRIPTION_TYPE_FILE_HEADER + FULL, "descriptiontyperefset_f"); - + tableNameMap.put(ATTRIBUTE_VALUE_MAP_FILE_HEADER + FULL, "attributevaluemap_f"); + tableNameMap.put(EXTENDED_ASSOCIATION_FILE_HEADER + FULL, "extendedassociation_f"); + tableNameMap.put(IDENTIFIER_FILE_HEADER + FULL, "identifier_f"); + tableNameMap.put(INTEGER_SIMPLE_MAP_FILE_HEADER + FULL, "isimplemaprefset_f"); + tableNameMap.put(CCS_REFSET_FILE_HEADER + FULL, "ccsrefset_f"); + tableNameMap.put(CCI_REFSET_FILE_HEADER + FULL, "ccirefset_f"); + tableNameMap.put(C_REFSET_FILE_HEADER + FULL, "crefset_f"); + //Snapshot tableNameMap.put(CONCEPT_FILE_HEADER + SNAPSHOT, "concept_s"); tableNameMap.put(DESCRIPTION_FILE_HEADER + SNAPSHOT, "description_s"); @@ -110,6 +132,13 @@ public class RF2FileTableMapper { tableNameMap.put(MRCM_ATRRIBUTE_RANGE_FILE_HEADER + SNAPSHOT, "mrcmattributerangerefset_s"); tableNameMap.put(MRCM_DOMAIN_FILE_HEADER + SNAPSHOT, "mrcmdomainrefset_s"); tableNameMap.put(DESCRIPTION_TYPE_FILE_HEADER + SNAPSHOT, "descriptiontyperefset_s"); + tableNameMap.put(ATTRIBUTE_VALUE_MAP_FILE_HEADER + SNAPSHOT, "attributevaluemap_s"); + tableNameMap.put(EXTENDED_ASSOCIATION_FILE_HEADER + SNAPSHOT, "extendedassociation_s"); + tableNameMap.put(IDENTIFIER_FILE_HEADER + SNAPSHOT, "identifier_s"); + tableNameMap.put(INTEGER_SIMPLE_MAP_FILE_HEADER + SNAPSHOT, "isimplemaprefset_s"); + tableNameMap.put(CCS_REFSET_FILE_HEADER + SNAPSHOT, "ccsrefset_s"); + tableNameMap.put(CCI_REFSET_FILE_HEADER + SNAPSHOT, "ccirefset_s"); + tableNameMap.put(C_REFSET_FILE_HEADER + SNAPSHOT, "crefset_s"); } public static String getLegacyTableName(final String filename) { diff --git a/src/main/resources/sql/create-tables-mysql.sql b/src/main/resources/sql/create-tables-mysql.sql index b597b9d65..91bf4b101 100644 --- a/src/main/resources/sql/create-tables-mysql.sql +++ b/src/main/resources/sql/create-tables-mysql.sql @@ -407,6 +407,143 @@ create table descriptiontyperefset_f( key idx_descriptionlength(descriptionlength) ) engine=myisam default charset=utf8; + +drop table if exists attributevaluemap_f; +create table attributevaluemap_f( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + maptarget varchar(32) not null, + value varchar(32) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_maptarget(maptarget) +) engine=myisam default charset=utf8; + +drop table if exists extendedassociation_f; +create table extendedassociation_f( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + targetcomponentid bigint(20) not null, + value varchar(32) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_targetcomponentid(targetcomponentid), + key idx_value(value) +) engine=myisam default charset=utf8; + +drop table if exists identifier_f; +create table identifier_f( + identifierschemeid bigint(20) not null, + alternateidentifier varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + referencedcomponentid bigint(20) not null, + key idx_identifierschemeid(identifierschemeid), + key idx_alternateidentifier(alternateidentifier), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_referencedcomponentid(referencedcomponentid) +) engine=myisam default charset=utf8; + +drop table if exists isimplemaprefset_f; +create table isimplemaprefset_f( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + maptarget bigint(20) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_maptarget(maptarget) +) engine=myisam default charset=utf8; + + +drop table if exists ccsrefset_f; +create table ccsrefset_f( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + componentid1 bigint(20) not null, + componentid2 bigint(20) not null, + value varchar(32) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_componentid1(componentid1), + key idx_componentid2(componentid2), + key idx_value(value) +) engine=myisam default charset=utf8; + +drop table if exists ccirefset_f; +create table ccirefset_f( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + componentid1 bigint(20) not null, + componentid2 bigint(20) not null, + value bigint(20) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_componentid1(componentid1), + key idx_componentid2(componentid2), + key idx_value(value) +) engine=myisam default charset=utf8; + +drop table if exists crefset_f; +create table crefset_f( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + componentid bigint(20) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_componentid(componentid) +) engine=myisam default charset=utf8; + /* create the Snapshot S-CT data tables */ drop table if exists concept_s; @@ -815,6 +952,143 @@ create table descriptiontyperefset_s( key idx_descriptionlength(descriptionlength) ) engine=myisam default charset=utf8; + +drop table if exists attributevaluemap_s; +create table attributevaluemap_s( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + maptarget varchar(32) not null, + value varchar(32) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_maptarget(maptarget) +) engine=myisam default charset=utf8; + +drop table if exists extendedassociation_s; +create table extendedassociation_s( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + targetcomponentid bigint(20) not null, + value varchar(32) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_targetcomponentid(targetcomponentid), + key idx_value(value) +) engine=myisam default charset=utf8; + +drop table if exists identifier_s; +create table identifier_s( + identifierschemeid bigint(20) not null, + alternateidentifier varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + referencedcomponentid bigint(20) not null, + key idx_identifierschemeid(identifierschemeid), + key idx_alternateidentifier(alternateidentifier), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_referencedcomponentid(referencedcomponentid) +) engine=myisam default charset=utf8; + +drop table if exists isimplemaprefset_s; +create table isimplemaprefset_s( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + maptarget bigint(20) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_maptarget(maptarget) +) engine=myisam default charset=utf8; + + +drop table if exists ccsrefset_s; +create table ccsrefset_s( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + componentid1 bigint(20) not null, + componentid2 bigint(20) not null, + value varchar(32) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_componentid1(componentid1), + key idx_componentid2(componentid2), + key idx_value(value) +) engine=myisam default charset=utf8; + +drop table if exists ccirefset_s; +create table ccirefset_s( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + componentid1 bigint(20) not null, + componentid2 bigint(20) not null, + value bigint(20) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_componentid1(componentid1), + key idx_componentid2(componentid2), + key idx_value(value) +) engine=myisam default charset=utf8; + +drop table if exists crefset_s; +create table crefset_s( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + componentid bigint(20) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_componentid(componentid) +) engine=myisam default charset=utf8; + /* create the Delta S-CT data tables */ drop table if exists concept_d; @@ -1433,3 +1707,139 @@ create table descriptiontyperefset_d( key idx_descriptionlength(descriptionlength) ) engine=myisam default charset=utf8; + +drop table if exists attributevaluemap_d; +create table attributevaluemap_d( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + maptarget varchar(32) not null, + value varchar(32) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_maptarget(maptarget) +) engine=myisam default charset=utf8; + +drop table if exists extendedassociation_d; +create table extendedassociation_d( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + targetcomponentid bigint(20) not null, + value varchar(32) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_targetcomponentid(targetcomponentid), + key idx_value(value) +) engine=myisam default charset=utf8; + +drop table if exists identifier_d; +create table identifier_d( + identifierschemeid bigint(20) not null, + alternateidentifier varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + referencedcomponentid bigint(20) not null, + key idx_identifierschemeid(identifierschemeid), + key idx_alternateidentifier(alternateidentifier), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_referencedcomponentid(referencedcomponentid) +) engine=myisam default charset=utf8; + +drop table if exists isimplemaprefset_d; +create table isimplemaprefset_d( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + maptarget bigint(20) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_maptarget(maptarget) +) engine=myisam default charset=utf8; + + +drop table if exists ccsrefset_d; +create table ccsrefset_d( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + componentid1 bigint(20) not null, + componentid2 bigint(20) not null, + value varchar(32) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_componentid1(componentid1), + key idx_componentid2(componentid2), + key idx_value(value) +) engine=myisam default charset=utf8; + +drop table if exists ccirefset_d; +create table ccirefset_d( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + componentid1 bigint(20) not null, + componentid2 bigint(20) not null, + value bigint(20) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_componentid1(componentid1), + key idx_componentid2(componentid2), + key idx_value(value) +) engine=myisam default charset=utf8; + +drop table if exists crefset_d; +create table crefset_d( + id varchar(36) not null, + effectivetime char(8) not null, + active char(1) not null, + moduleid bigint(20) not null, + refsetid bigint(20) not null, + referencedcomponentid bigint(20) not null, + componentid bigint(20) not null, + key idx_id(id), + key idx_effectivetime(effectivetime), + key idx_active(active), + key idx_moduleid(moduleid), + key idx_refsetid(refsetid), + key idx_referencedcomponentid(referencedcomponentid), + key idx_componentid(componentid) +) engine=myisam default charset=utf8; diff --git a/src/test/java/org/ihtsdo/rvf/core/service/RF2FileTableMapperTest.java b/src/test/java/org/ihtsdo/rvf/core/service/RF2FileTableMapperTest.java index f0b3cd48f..e018d99b3 100644 --- a/src/test/java/org/ihtsdo/rvf/core/service/RF2FileTableMapperTest.java +++ b/src/test/java/org/ihtsdo/rvf/core/service/RF2FileTableMapperTest.java @@ -108,8 +108,8 @@ public class RF2FileTableMapperTest { "associationrefset_d", "relationship_d" }; - - @Test + + @Test public void testInternationalDeltaFiles() { int i = 0; assertEquals(INT_DELTA_FILES.length, INT_EXPECTED_DELTA.length);