Skip to content

Commit 7a9f1ff

Browse files
committed
fix
1 parent c2c1424 commit 7a9f1ff

File tree

5 files changed

+19
-7
lines changed

5 files changed

+19
-7
lines changed

ydb/core/kqp/runtime/kqp_write_actor.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ class TKqpDirectWriteActor : public TActorBootstrapped<TKqpDirectWriteActor>, pu
137137
, Callbacks(args.Callback)
138138
, Counters(counters)
139139
, TypeEnv(args.TypeEnv)
140+
, Alloc(args.Alloc)
140141
, TxId(args.TxId)
141142
, TableId(
142143
Settings.GetTable().GetOwnerId(),
@@ -693,7 +694,8 @@ class TKqpDirectWriteActor : public TActorBootstrapped<TKqpDirectWriteActor>, pu
693694
: kMaxBatchesPerMessage),
694695
},
695696
std::move(columnsMetadata),
696-
TypeEnv);
697+
TypeEnv,
698+
Alloc);
697699
} catch (...) {
698700
RuntimeError(
699701
CurrentExceptionMessage(),
@@ -730,6 +732,7 @@ class TKqpDirectWriteActor : public TActorBootstrapped<TKqpDirectWriteActor>, pu
730732
NYql::NDq::IDqComputeActorAsyncOutput::ICallbacks * Callbacks = nullptr;
731733
TIntrusivePtr<TKqpCounters> Counters;
732734
const NMiniKQL::TTypeEnvironment& TypeEnv;
735+
std::shared_ptr<NKikimr::NMiniKQL::TScopedAlloc> Alloc;
733736

734737
const NYql::NDq::TTxId TxId;
735738
const TTableId TableId;

ydb/core/kqp/runtime/kqp_write_table.cpp

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1184,14 +1184,17 @@ class TShardedWriteController : public IShardedWriteController {
11841184
TShardedWriteController(
11851185
const TShardedWriteControllerSettings settings,
11861186
TVector<NKikimrKqp::TKqpColumnMetadataProto>&& inputColumnsMetadata,
1187-
const NMiniKQL::TTypeEnvironment& typeEnv)
1187+
const NMiniKQL::TTypeEnvironment& typeEnv,
1188+
std::shared_ptr<NKikimr::NMiniKQL::TScopedAlloc> alloc)
11881189
: Settings(settings)
11891190
, InputColumnsMetadata(std::move(inputColumnsMetadata))
1190-
, TypeEnv(typeEnv) {
1191+
, TypeEnv(typeEnv)
1192+
, Alloc(alloc) {
11911193
}
11921194

11931195
~TShardedWriteController() {
1194-
auto allocGuard = TypeEnv.BindAllocator();
1196+
Y_ABORT_UNLESS(Alloc);
1197+
TGuard<NMiniKQL::TScopedAlloc> allocGuard(*Alloc);
11951198
ShardsInfo.Clear();
11961199
Serializer = nullptr;
11971200
}
@@ -1237,6 +1240,7 @@ class TShardedWriteController : public IShardedWriteController {
12371240
TShardedWriteControllerSettings Settings;
12381241
TVector<NKikimrKqp::TKqpColumnMetadataProto> InputColumnsMetadata;
12391242
const NMiniKQL::TTypeEnvironment& TypeEnv;
1243+
std::shared_ptr<NKikimr::NMiniKQL::TScopedAlloc> Alloc;
12401244

12411245
TShardsInfo ShardsInfo;
12421246
bool Closed = false;
@@ -1250,8 +1254,10 @@ class TShardedWriteController : public IShardedWriteController {
12501254
IShardedWriteControllerPtr CreateShardedWriteController(
12511255
const TShardedWriteControllerSettings& settings,
12521256
TVector<NKikimrKqp::TKqpColumnMetadataProto>&& inputColumns,
1253-
const NMiniKQL::TTypeEnvironment& typeEnv) {
1254-
return MakeIntrusive<TShardedWriteController>(settings, std::move(inputColumns), typeEnv);
1257+
const NMiniKQL::TTypeEnvironment& typeEnv,
1258+
std::shared_ptr<NKikimr::NMiniKQL::TScopedAlloc> alloc) {
1259+
return MakeIntrusive<TShardedWriteController>(
1260+
settings, std::move(inputColumns), typeEnv, alloc);
12551261
}
12561262

12571263
}

ydb/core/kqp/runtime/kqp_write_table.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ struct TShardedWriteControllerSettings {
6464
IShardedWriteControllerPtr CreateShardedWriteController(
6565
const TShardedWriteControllerSettings& settings,
6666
TVector<NKikimrKqp::TKqpColumnMetadataProto>&& inputColumns,
67-
const NMiniKQL::TTypeEnvironment& typeEnv);
67+
const NMiniKQL::TTypeEnvironment& typeEnv,
68+
std::shared_ptr<NKikimr::NMiniKQL::TScopedAlloc> alloc);
6869

6970
}
7071
}

ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ struct IDqAsyncIoFactory : public TThrRefBase {
299299
const THashMap<TString, TString>& TaskParams;
300300
const NKikimr::NMiniKQL::TTypeEnvironment& TypeEnv;
301301
const NKikimr::NMiniKQL::THolderFactory& HolderFactory;
302+
std::shared_ptr<NKikimr::NMiniKQL::TScopedAlloc> Alloc;
302303
IRandomProvider *const RandomProvider;
303304
};
304305

ydb/library/yql/dq/actors/compute/dq_compute_actor_impl.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1359,6 +1359,7 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived>
13591359
.TaskParams = taskParams,
13601360
.TypeEnv = typeEnv,
13611361
.HolderFactory = holderFactory,
1362+
.Alloc = Alloc,
13621363
.RandomProvider = randomProvider
13631364
});
13641365
} catch (const std::exception& ex) {

0 commit comments

Comments
 (0)