This commit is contained in:
Yves
2025-02-19 11:20:42 +01:00
parent 80df1f7ce1
commit 5811f237d8
11 changed files with 636 additions and 569 deletions

View File

@@ -6,43 +6,46 @@
namespace duckdb {
namespace ui {
void EmptyResult::Serialize(Serializer &) const {
}
void EmptyResult::Serialize(Serializer &) const {}
void TokenizeResult::Serialize(Serializer &serializer) const {
serializer.WriteProperty(100, "offsets", offsets);
serializer.WriteProperty(101, "types", types);
serializer.WriteProperty(100, "offsets", offsets);
serializer.WriteProperty(101, "types", types);
}
// Adapted from parts of DataChunk::Serialize
void ColumnNamesAndTypes::Serialize(Serializer &serializer) const {
serializer.WriteProperty(100, "names", names);
serializer.WriteProperty(101, "types", types);
serializer.WriteProperty(100, "names", names);
serializer.WriteProperty(101, "types", types);
}
// Adapted from parts of DataChunk::Serialize
void Chunk::Serialize(Serializer &serializer) const {
serializer.WriteProperty(100, "row_count", row_count);
serializer.WriteList(101, "vectors", vectors.size(), [&](Serializer::List &list, idx_t i) {
list.WriteObject([&](Serializer &object) {
// Reference the vector to avoid potentially mutating it during serialization
Vector serialized_vector(vectors[i].GetType());
serialized_vector.Reference(vectors[i]);
serialized_vector.Serialize(object, row_count);
});
});
serializer.WriteProperty(100, "row_count", row_count);
serializer.WriteList(101, "vectors", vectors.size(),
[&](Serializer::List &list, idx_t i) {
list.WriteObject([&](Serializer &object) {
// Reference the vector to avoid potentially mutating
// it during serialization
Vector serialized_vector(vectors[i].GetType());
serialized_vector.Reference(vectors[i]);
serialized_vector.Serialize(object, row_count);
});
});
}
void SuccessResult::Serialize(Serializer &serializer) const {
serializer.WriteProperty(100, "success", true);
serializer.WriteProperty(101, "column_names_and_types", column_names_and_types);
serializer.WriteList(102, "chunks", chunks.size(),
[&](Serializer::List &list, idx_t i) { list.WriteElement(chunks[i]); });
serializer.WriteProperty(100, "success", true);
serializer.WriteProperty(101, "column_names_and_types",
column_names_and_types);
serializer.WriteList(
102, "chunks", chunks.size(),
[&](Serializer::List &list, idx_t i) { list.WriteElement(chunks[i]); });
}
void ErrorResult::Serialize(Serializer &serializer) const {
serializer.WriteProperty(100, "success", false);
serializer.WriteProperty(101, "error", error);
serializer.WriteProperty(100, "success", false);
serializer.WriteProperty(101, "error", error);
}
} // namespace ui