src/FilesystemCommand.h
branchv_0
changeset 32 bccda5688d71
parent 31 c64e1588f428
child 52 fea625f0a096
--- 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();