--- 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;
}