| 270 | } |
| 271 | |
| 272 | NCB::TCommonObjectsData NCB::TCommonObjectsData::GetSubset( |
| 273 | const TObjectsGroupingSubset& objectsGroupingSubset, |
| 274 | NPar::ILocalExecutor* localExecutor |
| 275 | ) const { |
| 276 | TCommonObjectsData result; |
| 277 | result.ResourceHolders = ResourceHolders; |
| 278 | result.FeaturesLayout = FeaturesLayout; |
| 279 | result.Order = Combine(Order, objectsGroupingSubset.GetObjectSubsetOrder()); |
| 280 | result.SetStoreStringColumns(StoreStringColumns); |
| 281 | |
| 282 | result.CatFeaturesHashToString = CatFeaturesHashToString; |
| 283 | |
| 284 | TVector<std::function<void()>> tasks; |
| 285 | |
| 286 | tasks.emplace_back( |
| 287 | [&, this]() { |
| 288 | result.SubsetIndexing = MakeAtomicShared<TArraySubsetIndexing<ui32>>( |
| 289 | Compose(*SubsetIndexing, objectsGroupingSubset.GetObjectsIndexing()) |
| 290 | ); |
| 291 | } |
| 292 | ); |
| 293 | |
| 294 | tasks.emplace_back( |
| 295 | [&, this]() { |
| 296 | result.GroupIds = GetSubsetFromMaybeStringOrNumIdColumn( |
| 297 | GroupIds, |
| 298 | objectsGroupingSubset.GetObjectsIndexing(), |
| 299 | localExecutor |
| 300 | ); |
| 301 | } |
| 302 | ); |
| 303 | tasks.emplace_back( |
| 304 | [&, this]() { |
| 305 | result.SampleId = GetSubsetOfMaybeEmpty<TString>( |
| 306 | (TMaybeData<TConstArrayRef<TString>>) SampleId, |
| 307 | objectsGroupingSubset.GetObjectsIndexing(), |
| 308 | localExecutor |
| 309 | ); |
| 310 | } |
| 311 | ); |
| 312 | tasks.emplace_back( |
| 313 | [&, this]() { |
| 314 | result.SubgroupIds = GetSubsetFromMaybeStringOrNumIdColumn( |
| 315 | SubgroupIds, |
| 316 | objectsGroupingSubset.GetObjectsIndexing(), |
| 317 | localExecutor |
| 318 | ); |
| 319 | } |
| 320 | ); |
| 321 | tasks.emplace_back( |
| 322 | [&, this]() { |
| 323 | result.Timestamp = GetSubsetOfMaybeEmpty<ui64>( |
| 324 | (TMaybeData<TConstArrayRef<ui64>>)Timestamp, |
| 325 | objectsGroupingSubset.GetObjectsIndexing(), |
| 326 | localExecutor |
| 327 | ); |
| 328 | } |
| 329 | ); |
no test coverage detected