--- a/src/SerializeHandler.h Sun Apr 17 01:31:28 2022 +0200
+++ b/src/SerializeHandler.h Sun Apr 17 16:39:29 2022 +0200
@@ -87,9 +87,6 @@
relationContext.name = name;
relationContext.readerMetadata = attributes;
- recordContext = RecordContext();
- recordContext.writer.reset(relpipe::writer::Factory::create(recordContext.buffer));
-
for (relpipe::reader::handlers::AttributeMetadata readerMetadata : attributes) {
relationContext.writerMetadata.push_back({readerMetadata.getAttributeName(), writer->toTypeId(readerMetadata.getTypeName())});
}
@@ -97,6 +94,8 @@
void attribute(const relpipe::common::type::StringX& value) override {
if (recordContext.attributeIndex == 0) {
+ recordContext = RecordContext();
+ recordContext.writer.reset(relpipe::writer::Factory::create(recordContext.buffer));
recordContext.writer->startRelation(relationContext.name, relationContext.writerMetadata, true);
}
@@ -105,8 +104,7 @@
if (recordContext.attributeIndex % relationContext.readerMetadata.size() == 0) {
writer->writeAttribute(toHex(recordContext.buffer.str()));
- recordContext = RecordContext();
- recordContext.writer.reset(relpipe::writer::Factory::create(recordContext.buffer));
+ recordContext.attributeIndex = 0;
}
}