@@ -38,15 +38,23 @@ class TLocalTaskRunnerActor
38
38
public:
39
39
static constexpr char ActorName[] = " YQL_DQ_TASK_RUNNER" ;
40
40
41
- TLocalTaskRunnerActor (ITaskRunnerActor::ICallbacks* parent, const TTaskRunnerFactory& factory, const TTxId& txId, ui64 taskId, THashSet<ui32>&& inputChannelsWithDisabledCheckpoints, THolder<NYql::NDq::TDqMemoryQuota>&& memoryQuota)
41
+ TLocalTaskRunnerActor (ITaskRunnerActor::ICallbacks* parent, const TTaskRunnerFactory& factory, const NKikimr::NMiniKQL::IFunctionRegistry& funcRegistry, const TTxId& txId, ui64 taskId, THashSet<ui32>&& inputChannelsWithDisabledCheckpoints, THolder<NYql::NDq::TDqMemoryQuota>&& memoryQuota)
42
42
: TActor<TLocalTaskRunnerActor>(&TLocalTaskRunnerActor::Handler)
43
+ , FuncRegistry(funcRegistry)
43
44
, Parent(parent)
44
45
, Factory(factory)
45
46
, TxId(txId)
46
47
, TaskId(taskId)
47
48
, InputChannelsWithDisabledCheckpoints(std::move(inputChannelsWithDisabledCheckpoints))
48
49
, MemoryQuota(std::move(memoryQuota))
49
- { }
50
+ {
51
+ Alloc = std::make_unique<NKikimr::NMiniKQL::TScopedAlloc>(
52
+ __LOCATION__,
53
+ NKikimr::TAlignedPagePoolCounters (),
54
+ FuncRegistry.SupportsSizedAllocators (),
55
+ false
56
+ );
57
+ }
50
58
51
59
~TLocalTaskRunnerActor ()
52
60
{ }
@@ -407,7 +415,7 @@ class TLocalTaskRunnerActor
407
415
void OnDqTask (TEvTaskRunnerCreate::TPtr& ev) {
408
416
ParentId = ev->Sender ;
409
417
auto settings = NDq::TDqTaskSettings (&ev->Get ()->Task );
410
- TaskRunner = Factory (settings, ev->Get ()->StatsMode , [this ](const TString& message) {
418
+ TaskRunner = Factory (*Alloc. get (), settings, ev->Get ()->StatsMode , [this ](const TString& message) {
411
419
LOG_D (message);
412
420
});
413
421
@@ -463,6 +471,8 @@ class TLocalTaskRunnerActor
463
471
THolder<TEvDq::TEvAbortExecution> GetError (const TString& message) {
464
472
return MakeHolder<TEvDq::TEvAbortExecution>(NYql::NDqProto::StatusIds::BAD_REQUEST, TVector<TIssue>{TIssue (message).SetCode (TIssuesIds::DQ_GATEWAY_ERROR, TSeverityIds::S_ERROR)});
465
473
}
474
+ const NKikimr::NMiniKQL::IFunctionRegistry& FuncRegistry;
475
+ std::unique_ptr<NKikimr::NMiniKQL::TScopedAlloc> Alloc;
466
476
467
477
NActors::TActorId ParentId;
468
478
ITaskRunnerActor::ICallbacks* Parent;
@@ -477,8 +487,9 @@ class TLocalTaskRunnerActor
477
487
};
478
488
479
489
struct TLocalTaskRunnerActorFactory : public ITaskRunnerActorFactory {
480
- TLocalTaskRunnerActorFactory (const TTaskRunnerFactory& factory)
490
+ TLocalTaskRunnerActorFactory (const NKikimr::NMiniKQL::IFunctionRegistry& funcRegistry, const TTaskRunnerFactory& factory)
481
491
: Factory(factory)
492
+ , FuncRegistry(funcRegistry)
482
493
{ }
483
494
484
495
std::tuple<ITaskRunnerActor*, NActors::IActor*> Create (
@@ -488,19 +499,20 @@ struct TLocalTaskRunnerActorFactory: public ITaskRunnerActorFactory {
488
499
THashSet<ui32>&& inputChannelsWithDisabledCheckpoints,
489
500
THolder<NYql::NDq::TDqMemoryQuota>&& memoryQuota) override
490
501
{
491
- auto * actor = new TLocalTaskRunnerActor (parent, Factory, txId, taskId, std::move (inputChannelsWithDisabledCheckpoints), std::move (memoryQuota));
502
+ auto * actor = new TLocalTaskRunnerActor (parent, Factory, FuncRegistry, txId, taskId, std::move (inputChannelsWithDisabledCheckpoints), std::move (memoryQuota));
492
503
return std::make_tuple (
493
504
static_cast <ITaskRunnerActor*>(actor),
494
505
static_cast <NActors::IActor*>(actor)
495
506
);
496
507
}
497
508
498
509
TTaskRunnerFactory Factory;
510
+ const NKikimr::NMiniKQL::IFunctionRegistry& FuncRegistry;
499
511
};
500
512
501
- ITaskRunnerActorFactory::TPtr CreateLocalTaskRunnerActorFactory (const TTaskRunnerFactory& factory)
513
+ ITaskRunnerActorFactory::TPtr CreateLocalTaskRunnerActorFactory (const NKikimr::NMiniKQL::IFunctionRegistry& funcRegistry, const TTaskRunnerFactory& factory)
502
514
{
503
- return ITaskRunnerActorFactory::TPtr (new TLocalTaskRunnerActorFactory (factory));
515
+ return ITaskRunnerActorFactory::TPtr (new TLocalTaskRunnerActorFactory (funcRegistry, factory));
504
516
}
505
517
506
518
} // namespace NTaskRunnerActor
0 commit comments