--- a/src/SqlHandler.h Tue Jul 30 14:01:21 2019 +0200
+++ b/src/SqlHandler.h Tue Jul 30 15:51:35 2019 +0200
@@ -87,7 +87,8 @@
// TODO: sqlite3_column_type
std::string getString(int columnIndex) {
- return (char *) sqlite3_column_text(stmt, columnIndex);
+ const char* value = (const char*) sqlite3_column_text(stmt, columnIndex);
+ return value ? value : ""; // TODO: support NULL values (when supported in relpipe format)
}
};
@@ -132,13 +133,13 @@
prepared.setString(i + 1, convertor.to_bytes(statement.parameters[i].value));
}
- for (int i = 0; i < columnCount; i++) {
- printf("column %d ~ %s\n", i, prepared.getColumName(i).c_str());
- }
+ std::vector<relpipe::writer::AttributeMetadata> metadata;
+ for (int i = 0; i < columnCount; i++) metadata.push_back({convertor.from_bytes(prepared.getColumName(i).c_str()), relpipe::writer::TypeId::STRING});
+ relationalWriter->startRelation(statement.relation, metadata, true);
while (prepared.next()) {
for (int i = 0; i < columnCount; i++) {
- printf("column %d ~ %s = %s\n", i, prepared.getColumName(i).c_str(), prepared.getString(i).c_str());
+ relationalWriter->writeAttribute(convertor.from_bytes(prepared.getString(i)));
}
}
}