--- a/src/AttributeFinder.h Sat Jan 11 18:13:30 2020 +0100
+++ b/src/AttributeFinder.h Sat Jan 11 19:10:01 2020 +0100
@@ -43,7 +43,7 @@
* @param writer
* @param field
*/
- virtual void writeFieldOfExistingFile(RelationalWriter* writer, const RequestedField& field) = 0;
+ virtual void writeFieldOfExistingFile(RelationalWriter* writer, const string_t& relationName, const RequestedField& field) = 0;
/**
* Writes empty attribute(s) in case of non-existent file or an error.
@@ -51,9 +51,9 @@
* @param writer
* @param field
*/
- virtual void writeEmptyField(RelationalWriter* writer, const RequestedField& field) {
+ virtual void writeEmptyField(RelationalWriter* writer, const string_t& relationName, const RequestedField& field) {
// TODO: better handling of null values (when null values are supported by the format specification)
- for (AttributeMetadata m : toMetadata(writer, field)) {
+ for (AttributeMetadata m : toMetadata(writer, relationName, field)) {
switch (m.typeId) {
case TypeId::BOOLEAN:
writer->writeAttribute(L"false");
@@ -76,10 +76,11 @@
* Single requested fields might generate multiple attributes in the relation.
* But usually it is 1:1.
* @param writer can be used for TypeId coversion from string_t
+ * @param relationName default one or set by the user
* @param field requested field from the user (usually from CLI arguments)
* @return attribute metadata to be used in the RelationalWriter.startRelation()
*/
- virtual vector<AttributeMetadata> toMetadata(RelationalWriter* writer, const RequestedField& field) = 0;
+ virtual vector<AttributeMetadata> toMetadata(RelationalWriter* writer, const string_t& relationName, const RequestedField& field) = 0;
/**
* Writing of the record for current file is starting.
@@ -93,9 +94,9 @@
currentFileExists = exists;
}
- virtual void writeField(RelationalWriter* writer, const RequestedField& field) {
- if (currentFileExists) writeFieldOfExistingFile(writer, field);
- else writeEmptyField(writer, field);
+ virtual void writeField(RelationalWriter* writer, const string_t& relationName, const RequestedField& field) {
+ if (currentFileExists) writeFieldOfExistingFile(writer, relationName, field);
+ else writeEmptyField(writer, relationName, field);
}
/**