Skip to content

Commit e84a727

Browse files
committed
DPL Analysis: rework table builder cursor signature logic
1 parent ad782f9 commit e84a727

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

Framework/Core/include/Framework/TableBuilder.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ struct BuilderUtils {
157157

158158
/// Appender for the vector case.
159159
template <typename HolderType, typename T>
160-
static arrow::Status append(HolderType& holder, std::vector<T> const& data)
160+
static arrow::Status append(HolderType& holder, std::span<T> data)
161161
{
162162
using ArrowType = typename detail::ConversionTraits<T>::ArrowType;
163163
using ValueBuilderType = typename arrow::TypeTraits<ArrowType>::BuilderType;
@@ -170,7 +170,7 @@ struct BuilderUtils {
170170
}
171171

172172
template <typename HolderType, typename T>
173-
static void unsafeAppend(HolderType& holder, std::vector<T> const& value)
173+
static void unsafeAppend(HolderType& holder, std::span<T> value)
174174
{
175175
auto status = append(holder, value);
176176
if (!status.ok()) {
@@ -224,7 +224,7 @@ struct BuilderUtils {
224224

225225
template <typename T>
226226
struct BuilderMaker {
227-
using FillType = T;
227+
using FillType = T const&;
228228
using STLValueType = T;
229229
using ArrowType = typename detail::ConversionTraits<T>::ArrowType;
230230
using BuilderType = typename arrow::TypeTraits<ArrowType>::BuilderType;
@@ -276,7 +276,7 @@ struct BuilderMaker<bool> {
276276

277277
template <typename ITERATOR>
278278
struct BuilderMaker<std::pair<ITERATOR, ITERATOR>> {
279-
using FillType = std::pair<ITERATOR, ITERATOR>;
279+
using FillType = std::pair<ITERATOR, ITERATOR> const&;
280280
using STLValueType = typename ITERATOR::value_type;
281281
using ArrowType = arrow::ListType;
282282
using ValueType = typename detail::ConversionTraits<typename ITERATOR::value_type>::ArrowType;
@@ -361,7 +361,7 @@ struct BuilderMaker<std::array<T, N>> {
361361

362362
template <typename T>
363363
struct BuilderMaker<std::vector<T>> {
364-
using FillType = std::vector<T>;
364+
using FillType = std::span<T>;
365365
using BuilderType = arrow::ListBuilder;
366366
using ArrowType = arrow::ListType;
367367
using ElementType = typename detail::ConversionTraits<T>::ArrowType;
@@ -647,7 +647,7 @@ class TableBuilder
647647
{
648648
auto persister = persistTuple(framework::pack<ARG0, ARGS...>{}, columnNames);
649649
// Callback used to fill the builders
650-
return [persister = persister](unsigned int slot, typename BuilderMaker<ARG0>::FillType const& arg, typename BuilderMaker<ARGS>::FillType... args) -> void {
650+
return [persister = persister](unsigned int slot, typename BuilderMaker<ARG0>::FillType arg, typename BuilderMaker<ARGS>::FillType... args) -> void {
651651
persister(slot, std::forward_as_tuple(arg, args...));
652652
};
653653
}

0 commit comments

Comments
 (0)