@@ -543,7 +543,7 @@ static void setGroupedCombination(C& comb, TG& grouping, std::tuple<Ts...>& asso
543543
544544// / Preslice handling
545545template <typename T>
546- requires (!is_preslice<T>)
546+ requires (!is_preslice<T> && !is_preslice_group<T> )
547547bool registerCache (T&, Cache&, Cache&)
548548{
549549 return false ;
@@ -585,8 +585,15 @@ bool registerCache(T& preslice, Cache&, Cache& bsksU)
585585 return true ;
586586}
587587
588+ template <is_preslice_group T>
589+ bool registerCache (T& presliceGroup, Cache& bsks, Cache& bsksU)
590+ {
591+ homogeneous_apply_refs<true >([&bsks, &bsksU](auto & preslice){ return registerCache (preslice, bsks, bsksU); }, presliceGroup);
592+ return true ;
593+ }
594+
588595template <typename T>
589- requires (!is_preslice<T>)
596+ requires (!is_preslice<T> && !is_preslice_group<T> )
590597bool updateSliceInfo (T&, ArrowTableSlicingCache&)
591598{
592599 return false ;
@@ -618,6 +625,13 @@ static bool updateSliceInfo(T& preslice, ArrowTableSlicingCache& cache)
618625 return true ;
619626}
620627
628+ template <is_preslice_group T>
629+ static bool updateSliceInfo (T& presliceGroup, ArrowTableSlicingCache& cache)
630+ {
631+ homogeneous_apply_refs<true >([&cache](auto & preslice){ return updateSliceInfo (preslice, cache); }, presliceGroup);
632+ return true ;
633+ }
634+
621635// / Process switches handling
622636template <typename T>
623637static bool setProcessSwitch (std::pair<std::string, bool >, T&)
0 commit comments