equal
deleted
inserted
replaced
114 |
114 |
115 } |
115 } |
116 |
116 |
117 void writeAttribute(const string_t& value) override { |
117 void writeAttribute(const string_t& value) override { |
118 if (currentColumn == 0) integerWriter.writeValue(output, DATA_PART_ROW); |
118 if (currentColumn == 0) integerWriter.writeValue(output, DATA_PART_ROW); |
|
119 // TODO: select writer for each attribute just once in startRelation() instead of looking it each time here |
119 writeString(value, columnTypes[currentColumn]); |
120 writeString(value, columnTypes[currentColumn]); |
120 if (++currentColumn == columnCount) currentColumn = 0; |
121 if (++currentColumn == columnCount) currentColumn = 0; |
121 } |
122 } |
122 |
123 |
123 void writeAttribute(const void* value, const std::type_info& type) override { |
124 void writeAttribute(const void* value, const std::type_info& type) override { |
124 if (currentColumn == 0) integerWriter.writeValue(output, DATA_PART_ROW); |
125 if (currentColumn == 0) integerWriter.writeValue(output, DATA_PART_ROW); |
|
126 // TODO: select writer for each attribute just once in startRelation() instead of looking it each time here |
125 writeRaw(value, type, columnTypes[currentColumn]); |
127 writeRaw(value, type, columnTypes[currentColumn]); |
126 if (++currentColumn == columnCount) currentColumn = 0; |
128 if (++currentColumn == columnCount) currentColumn = 0; |
127 } |
129 } |
128 |
130 |
129 }; |
131 }; |