diff -r c9fece435aa2 -r 82bd0f57a889 src/GuileHandler.h --- 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; }