36#include <unordered_map>
40#include "iceberg/iceberg_export.h"
41#include "iceberg/result.h"
69 static Result<ArrowRowBuilder> Make(
const Schema& schema);
75 static Result<ArrowRowBuilder> Make(
const ArrowSchema* schema);
86 int64_t num_columns()
const;
101 Result<ArrowArray> Finish() &&;
109ICEBERG_EXPORT Status AppendNull(
ArrowArray* array);
112ICEBERG_EXPORT Status AppendBoolean(
ArrowArray* array,
bool value);
117ICEBERG_EXPORT Status AppendInt(
ArrowArray* array, int64_t value);
120ICEBERG_EXPORT Status AppendUInt(
ArrowArray* array, uint64_t value);
123ICEBERG_EXPORT Status AppendDouble(
ArrowArray* array,
double value);
126ICEBERG_EXPORT Status AppendString(
ArrowArray* array, std::string_view value);
129ICEBERG_EXPORT Status AppendBytes(
ArrowArray* array, std::span<const uint8_t> value);
132ICEBERG_EXPORT Status AppendIntList(
ArrowArray* array,
133 const std::vector<int32_t>& values);
136ICEBERG_EXPORT Status AppendIntList(
ArrowArray* array,
137 const std::vector<int64_t>& values);
143ICEBERG_EXPORT Status AppendStringMap(
144 ArrowArray* array,
const std::unordered_map<std::string, std::string>& entries);
147ICEBERG_EXPORT Status AppendIntMap(
ArrowArray* array,
148 const std::map<int32_t, int64_t>& entries);
151ICEBERG_EXPORT Status AppendBinaryMap(
152 ArrowArray* array,
const std::map<int32_t, std::vector<uint8_t>>& entries);
Movable RAII builder that materializes rows into an Arrow struct array.
Definition arrow_row_builder_internal.h:66
A schema for a Table.
Definition schema.h:51
Definition arrow_c_data.h:57
Definition arrow_c_data.h:41