@@ -580,7 +580,7 @@ static void setGroupedCombination(C& comb, TG& grouping, std::tuple<Ts...>& asso
580580
581581// / Preslice handling
582582template <typename T>
583- requires (!is_preslice<T>)
583+ requires (!is_preslice<T> && !is_preslice_group<T> )
584584bool registerCache (T&, Cache&, Cache&)
585585{
586586 return false ;
@@ -622,8 +622,15 @@ bool registerCache(T& preslice, Cache&, Cache& bsksU)
622622 return true ;
623623}
624624
625+ template <is_preslice_group T>
626+ bool registerCache (T& presliceGroup, Cache& bsks, Cache& bsksU)
627+ {
628+ homogeneous_apply_refs<true >([&bsks, &bsksU](auto & preslice) { return registerCache (preslice, bsks, bsksU); }, presliceGroup);
629+ return true ;
630+ }
631+
625632template <typename T>
626- requires (!is_preslice<T>)
633+ requires (!is_preslice<T> && !is_preslice_group<T> )
627634bool updateSliceInfo (T&, ArrowTableSlicingCache&)
628635{
629636 return false ;
@@ -655,6 +662,13 @@ static bool updateSliceInfo(T& preslice, ArrowTableSlicingCache& cache)
655662 return true ;
656663}
657664
665+ template <is_preslice_group T>
666+ static bool updateSliceInfo (T& presliceGroup, ArrowTableSlicingCache& cache)
667+ {
668+ homogeneous_apply_refs<true >([&cache](auto & preslice) { return updateSliceInfo (preslice, cache); }, presliceGroup);
669+ return true ;
670+ }
671+
658672// / Process switches handling
659673template <typename T>
660674static bool setProcessSwitch (std::pair<std::string, bool >, T&)
0 commit comments