src/GuileHandler.h
branchv_0
changeset 14 82bd0f57a889
parent 13 c9fece435aa2
child 15 051e58022783
--- a/src/GuileHandler.h	Tue Feb 05 12:14:58 2019 +0100
+++ b/src/GuileHandler.h	Tue Feb 05 12:41:54 2019 +0100
@@ -190,7 +190,7 @@
 			for (DefinitionRecipe definition : currentRelationConfiguration->definitions) undefineGuileVariable(definition.name);
 		}
 		for (auto attribute : currentReaderMetadata) undefineGuileVariable(attribute.getAttributeName());
-		
+
 		for (DefinitionRecipe definition : configuration.definitions) defineGuileVariable(definition);
 
 		currentRelationConfiguration = nullptr;
@@ -211,7 +211,7 @@
 			for (AttributeMetadata readerMetadata : attributes) currentWriterMetadata.push_back({readerMetadata.getAttributeName(), relationalWriter->toTypeId(readerMetadata.getTypeName())});
 		}
 
-		relationalWriter->startRelation(name, currentWriterMetadata, true);
+		if (!currentRelationConfiguration || !currentRelationConfiguration->drop) relationalWriter->startRelation(name, currentWriterMetadata, true);
 
 		if (currentRelationConfiguration) {
 			// TODO: better variable name, object, function?
@@ -230,7 +230,7 @@
 			if (currentAttributeIndex > 0 && currentAttributeIndex % currentReaderMetadata.size() == 0) {
 				evalGuileCode(currentRelationConfiguration->guileForEach);
 				includeCurrentRecord = scm_to_bool(evalGuileCode(currentRelationConfiguration->guileWhere, SCM_BOOL_T));
-				if (includeCurrentRecord) for (auto attribute : currentWriterMetadata) writeGuileValueToAttribute(attribute);
+				if (includeCurrentRecord && !currentRelationConfiguration->drop) for (auto attribute : currentWriterMetadata) writeGuileValueToAttribute(attribute);
 				includeCurrentRecord = false;
 			}