diff --git a/Framework/Core/include/Framework/AnalysisTask.h b/Framework/Core/include/Framework/AnalysisTask.h index 322521cd6246d..9809ed0068729 100644 --- a/Framework/Core/include/Framework/AnalysisTask.h +++ b/Framework/Core/include/Framework/AnalysisTask.h @@ -384,7 +384,7 @@ struct AnalysisDataProcessorBuilder { return true; }, task); - + overwriteInternalIndices(associatedTables, associatedTables); if constexpr (soa::is_soa_iterator_v>) { auto slicer = GroupSlicer(groupingTable, associatedTables, slices); for (auto& slice : slicer) { @@ -406,7 +406,6 @@ struct AnalysisDataProcessorBuilder { invokeProcessWithArgsGeneric(task, processingFunction, slice.groupingElement(), associatedSlices); } } else { - overwriteInternalIndices(associatedTables, associatedTables); // bind partitions and grouping table homogeneous_apply_refs([&groupingTable](auto& x) { PartitionManager>::bindExternalIndices(x, &groupingTable); diff --git a/Framework/Core/include/Framework/GroupSlicer.h b/Framework/Core/include/Framework/GroupSlicer.h index 5fd48ffe3ab75..2f94f6e7623a0 100644 --- a/Framework/Core/include/Framework/GroupSlicer.h +++ b/Framework/Core/include/Framework/GroupSlicer.h @@ -194,10 +194,9 @@ struct GroupSlicer { return typedTable; } else { - auto groupedElementsTable = originalTable.asArrowTable()->Slice(offset, count); - std::decay_t typedTable{{groupedElementsTable}, offset}; - typedTable.bindInternalIndicesTo(&originalTable); - return typedTable; + auto groupedElementsTable = originalTable.rawSlice(offset, offset + count - 1); + groupedElementsTable.bindInternalIndicesTo(&originalTable); + return groupedElementsTable; } } else { // generic split