@@ -54,7 +54,7 @@ class TKqpCompileActor : public TActorBootstrapped<TKqpCompileActor> {
54
54
NWilson::TTraceId traceId, TKqpTempTablesState::TConstPtr tempTablesState, bool collectFullDiagnostics,
55
55
bool perStatementResult,
56
56
ECompileActorAction compileAction, TMaybe<TQueryAst> queryAst,
57
- NYql::TExprContext* splitCtx,
57
+ std::shared_ptr< NYql::TExprContext> splitCtx,
58
58
NYql::TExprNode::TPtr splitExpr)
59
59
: Owner(owner)
60
60
, ModuleResolverState(moduleResolverState)
@@ -71,14 +71,14 @@ class TKqpCompileActor : public TActorBootstrapped<TKqpCompileActor> {
71
71
, Config(MakeIntrusive<TKikimrConfiguration>())
72
72
, QueryServiceConfig(queryServiceConfig)
73
73
, CompilationTimeout(TDuration::MilliSeconds(tableServiceConfig.GetCompileTimeoutMs()))
74
+ , SplitCtx(std::move(splitCtx))
75
+ , SplitExpr(std::move(splitExpr))
74
76
, UserRequestContext(userRequestContext)
75
77
, CompileActorSpan(TWilsonKqp::CompileActor, std::move(traceId), " CompileActor" )
76
78
, TempTablesState(std::move(tempTablesState))
77
79
, CollectFullDiagnostics(collectFullDiagnostics)
78
80
, CompileAction(compileAction)
79
81
, QueryAst(std::move(queryAst))
80
- , SplitCtx(splitCtx)
81
- , SplitExpr(splitExpr)
82
82
{
83
83
Config->Init (kqpSettings->DefaultSettings .GetDefaultSettings (), QueryId.Cluster , kqpSettings->Settings , false );
84
84
@@ -270,15 +270,15 @@ class TKqpCompileActor : public TActorBootstrapped<TKqpCompileActor> {
270
270
271
271
case NKikimrKqp::QUERY_TYPE_SQL_GENERIC_QUERY:
272
272
prepareSettings.ConcurrentResults = false ;
273
- AsyncCompileResult = KqpHost->PrepareGenericQuery (QueryRef, prepareSettings, SplitExpr);
273
+ AsyncCompileResult = KqpHost->PrepareGenericQuery (QueryRef, prepareSettings, SplitExpr. get () );
274
274
break ;
275
275
276
276
case NKikimrKqp::QUERY_TYPE_SQL_GENERIC_CONCURRENT_QUERY:
277
- AsyncCompileResult = KqpHost->PrepareGenericQuery (QueryRef, prepareSettings, SplitExpr);
277
+ AsyncCompileResult = KqpHost->PrepareGenericQuery (QueryRef, prepareSettings, SplitExpr. get () );
278
278
break ;
279
279
280
280
case NKikimrKqp::QUERY_TYPE_SQL_GENERIC_SCRIPT:
281
- AsyncCompileResult = KqpHost->PrepareGenericScript (QueryRef, prepareSettings, SplitExpr);
281
+ AsyncCompileResult = KqpHost->PrepareGenericScript (QueryRef, prepareSettings, SplitExpr. get () );
282
282
break ;
283
283
284
284
default :
@@ -319,7 +319,7 @@ class TKqpCompileActor : public TActorBootstrapped<TKqpCompileActor> {
319
319
320
320
KqpHost = CreateKqpHost (Gateway, QueryId.Cluster , QueryId.Database , Config, ModuleResolverState->ModuleResolver ,
321
321
FederatedQuerySetup, UserToken, GUCSettings, QueryServiceConfig, ApplicationName, AppData (ctx)->FunctionRegistry ,
322
- false , false , std::move (TempTablesState), nullptr , SplitCtx, UserRequestContext);
322
+ false , false , std::move (TempTablesState), nullptr , SplitCtx. get () , UserRequestContext);
323
323
324
324
IKqpHost::TPrepareSettings prepareSettings;
325
325
prepareSettings.DocumentApiRestricted = QueryId.Settings .DocumentApiRestricted ;
@@ -600,6 +600,8 @@ class TKqpCompileActor : public TActorBootstrapped<TKqpCompileActor> {
600
600
TDuration CompileCpuTime;
601
601
TInstant RecompileStartTime;
602
602
TActorId TimeoutTimerActorId;
603
+ std::shared_ptr<NYql::TExprContext> SplitCtx;
604
+ NYql::TExprNode::TPtr SplitExpr;
603
605
TIntrusivePtr<IKqpGateway> Gateway;
604
606
TIntrusivePtr<IKqpHost> KqpHost;
605
607
TIntrusivePtr<IKqpHost::IAsyncQueryResult> AsyncCompileResult;
@@ -617,9 +619,6 @@ class TKqpCompileActor : public TActorBootstrapped<TKqpCompileActor> {
617
619
bool PerStatementResult;
618
620
ECompileActorAction CompileAction;
619
621
TMaybe<TQueryAst> QueryAst;
620
-
621
- NYql::TExprContext* SplitCtx = nullptr ;
622
- NYql::TExprNode::TPtr SplitExpr = nullptr ;
623
622
};
624
623
625
624
void ApplyServiceConfig (TKikimrConfiguration& kqpConfig, const TTableServiceConfig& serviceConfig) {
@@ -667,15 +666,15 @@ IActor* CreateKqpCompileActor(const TActorId& owner, const TKqpSettings::TConstP
667
666
const TMaybe<TString>& applicationName, const TIntrusivePtr<TUserRequestContext>& userRequestContext,
668
667
NWilson::TTraceId traceId, TKqpTempTablesState::TConstPtr tempTablesState,
669
668
ECompileActorAction compileAction, TMaybe<TQueryAst> queryAst, bool collectFullDiagnostics,
670
- bool perStatementResult, NYql::TExprContext* splitCtx, NYql::TExprNode::TPtr splitExpr)
669
+ bool perStatementResult, std::shared_ptr< NYql::TExprContext> splitCtx, NYql::TExprNode::TPtr splitExpr)
671
670
{
672
671
return new TKqpCompileActor (owner, kqpSettings, tableServiceConfig, queryServiceConfig,
673
672
moduleResolverState, counters, gUCSettings , applicationName,
674
673
uid, query, userToken, clientAddress, dbCounters,
675
674
federatedQuerySetup, userRequestContext,
676
675
std::move (traceId), std::move (tempTablesState), collectFullDiagnostics,
677
676
perStatementResult, compileAction, std::move (queryAst),
678
- splitCtx, splitExpr);
677
+ std::move ( splitCtx), std::move ( splitExpr) );
679
678
}
680
679
681
680
} // namespace NKqp
0 commit comments