--- a/src/FilesystemCommand.h Sat Jan 11 18:13:30 2020 +0100
+++ b/src/FilesystemCommand.h Sat Jan 11 19:10:01 2020 +0100
@@ -77,14 +77,15 @@
void process(std::istream& input, std::ostream& output, Configuration& configuration) {
std::shared_ptr<RelationalWriter> writer(Factory::create(output));
+ string_t relationName = configuration.relation.empty() ? L"filesystem" : configuration.relation;
+
std::vector<AttributeMetadata> attributesMetadata;
for (RequestedField field : configuration.fields) {
AttributeFinder* finder = attributeFinders[field.group];
- if (finder) for (AttributeMetadata m : finder->toMetadata(writer.get(), field)) attributesMetadata.push_back(m);
+ if (finder) for (AttributeMetadata m : finder->toMetadata(writer.get(), relationName, field)) attributesMetadata.push_back(m);
else throw RelpipeWriterException(L"Unsupported field group: " + field.group);
}
- string_t relationName = configuration.relation.empty() ? L"filesystem" : configuration.relation;
writer->startRelation(relationName, attributesMetadata, true);
@@ -102,7 +103,7 @@
for (RequestedField field : configuration.fields) {
AttributeFinder* finder = attributeFinders[field.group]; // should not be nullptr, because already checked while writing the relation metadata
- finder->writeField(writer.get(), field);
+ finder->writeField(writer.get(), relationName, field);
}
for (auto& finder : attributeFinders) finder.second->endFile();