@@ -170,12 +170,14 @@ class TKqpTableWriteActor : public TActorBootstrapped<TKqpTableWriteActor> {
170170 const bool inconsistentTx,
171171 const NMiniKQL::TTypeEnvironment& typeEnv,
172172 std::shared_ptr<NKikimr::NMiniKQL::TScopedAlloc> alloc,
173+ const std::optional<NKikimrDataEvents::TMvccSnapshot>& mvccSnapshot,
173174 const IKqpTransactionManagerPtr& txManager,
174175 const TActorId sessionActorId,
175176 TIntrusivePtr<TKqpCounters> counters,
176177 NWilson::TTraceId traceId)
177178 : TypeEnv(typeEnv)
178179 , Alloc(alloc)
180+ , MvccSnapshot(mvccSnapshot)
179181 , TableId(tableId)
180182 , TablePath(tablePath)
181183 , LockTxId(lockTxId)
@@ -812,6 +814,9 @@ class TKqpTableWriteActor : public TActorBootstrapped<TKqpTableWriteActor> {
812814 FillEvWritePrepare (evWrite.get (), shardId, *TxId, TxManager);
813815 } else if (!InconsistentTx) {
814816 evWrite->SetLockId (LockTxId, LockNodeId);
817+ if (MvccSnapshot) {
818+ *evWrite->Record .MutableMvccSnapshot () = *MvccSnapshot;
819+ }
815820 }
816821
817822 const auto serializationResult = ShardedWriteController->SerializeMessageToPayload (shardId, *evWrite);
@@ -953,6 +958,8 @@ class TKqpTableWriteActor : public TActorBootstrapped<TKqpTableWriteActor> {
953958 const NMiniKQL::TTypeEnvironment& TypeEnv;
954959 std::shared_ptr<NKikimr::NMiniKQL::TScopedAlloc> Alloc;
955960
961+ std::optional<NKikimrDataEvents::TMvccSnapshot> MvccSnapshot;
962+
956963 const TTableId TableId;
957964 const TString TablePath;
958965
@@ -1018,6 +1025,9 @@ class TKqpDirectWriteActor : public TActorBootstrapped<TKqpDirectWriteActor>, pu
10181025 Settings.GetInconsistentTx (),
10191026 TypeEnv,
10201027 Alloc,
1028+ Settings.GetIsOlap ()
1029+ ? std::optional<NKikimrDataEvents::TMvccSnapshot>{Settings.GetMvccSnapshot ()}
1030+ : std::optional<NKikimrDataEvents::TMvccSnapshot>{},
10211031 nullptr ,
10221032 TActorId{},
10231033 Counters,
@@ -1205,6 +1215,7 @@ struct TTransactionSettings {
12051215 ui64 LockTxId = 0 ;
12061216 ui64 LockNodeId = 0 ;
12071217 bool InconsistentTx = false ;
1218+ NKikimrDataEvents::TMvccSnapshot MvccSnapshot;
12081219};
12091220
12101221struct TWriteSettings {
@@ -1333,6 +1344,7 @@ class TKqpBufferWriteActor :public TActorBootstrapped<TKqpBufferWriteActor>, pub
13331344 InconsistentTx,
13341345 TypeEnv,
13351346 Alloc,
1347+ std::nullopt ,
13361348 TxManager,
13371349 SessionActorId,
13381350 Counters,
0 commit comments