7#include <sparrow/record_batch.hpp>
114 template <std::ranges::input_range R>
115 requires std::same_as<std::ranges::range_value_t<R>, sparrow::record_batch>
118 if (record_batches.empty() || record_batches.size() == 1)
122 const sparrow::record_batch& first_rb = record_batches[0];
123 const size_t first_rb_nb_columns = first_rb.nb_columns();
124 for (
const sparrow::record_batch& rb : record_batches)
126 const auto rb_nb_columns = rb.nb_columns();
127 if (rb_nb_columns != first_rb_nb_columns)
131 for (
size_t col_idx = 0; col_idx < rb.nb_columns(); ++col_idx)
133 const sparrow::array& arr = rb.get_column(col_idx);
134 const sparrow::array& first_arr = first_rb.get_column(col_idx);
135 const auto arr_data_type = arr.data_type();
136 const auto first_arr_data_type = first_arr.data_type();
137 if (arr_data_type != first_arr_data_type)
SPARROW_IPC_API std::optional< int32_t > get_substr_as_int32(std::string_view str, std::string_view sep)
SPARROW_IPC_API std::optional< std::string_view > get_substr_after_separator(std::string_view str, std::string_view sep)
SPARROW_IPC_API std::optional< std::tuple< int32_t, int32_t, std::optional< int32_t > > > parse_decimal_format(std::string_view format_str)
constexpr size_t align_to_8(const size_t n)
bool check_record_batches_consistency(const R &record_batches)
Checks if all record batches in a collection have consistent structure.
SPARROW_IPC_API std::optional< int32_t > parse_to_int32(std::string_view str)
SPARROW_IPC_API std::vector< std::string_view > extract_words_after_colon(std::string_view str)