@@ -402,7 +402,7 @@ class TKqpExecuterBase : public TActorBootstrapped<TDerived> {
402
402
for (ui32 txId = 0 ; txId < Request.Transactions .size (); ++txId) {
403
403
const auto & tx = Request.Transactions [txId].Body ;
404
404
auto planWithStats = AddExecStatsToTxPlan (tx->GetPlan (), execStats);
405
- (* execStats.MutableTxPlansWithStats ())[txId] = planWithStats;
405
+ execStats.AddTxPlansWithStats ( planWithStats) ;
406
406
}
407
407
this ->Send (Target, progress.Release ());
408
408
LastProgressStats = now;
@@ -1737,32 +1737,6 @@ class TKqpExecuterBase : public TActorBootstrapped<TDerived> {
1737
1737
this ->Shutdown ();
1738
1738
}
1739
1739
1740
- void FillResponseStats () {
1741
- auto & response = *ResponseEv->Record .MutableResponse ();
1742
-
1743
- YQL_ENSURE (Stats);
1744
-
1745
- ReportEventElapsedTime ();
1746
-
1747
- Stats->FinishTs = TInstant::Now ();
1748
- Stats->Finish ();
1749
-
1750
- if (Stats->CollectStatsByLongTasks || CollectFullStats (Request.StatsMode )) {
1751
- for (ui32 txId = 0 ; txId < Request.Transactions .size (); ++txId) {
1752
- const auto & tx = Request.Transactions [txId].Body ;
1753
- auto planWithStats = AddExecStatsToTxPlan (tx->GetPlan (), response.GetResult ().GetStats ());
1754
- (*response.MutableResult ()->MutableStats ()->MutableTxPlansWithStats ())[txId] = planWithStats;
1755
- }
1756
- }
1757
-
1758
- if (Stats->CollectStatsByLongTasks ) {
1759
- const auto & txPlansWithStats = response.GetResult ().GetStats ().GetTxPlansWithStats ();
1760
- if (!txPlansWithStats.empty ()) {
1761
- LOG_N (" Full stats: " << response.GetResult ().GetStats ());
1762
- }
1763
- }
1764
- }
1765
-
1766
1740
virtual void ReplyErrorAndDie (Ydb::StatusIds::StatusCode status,
1767
1741
google::protobuf::RepeatedPtrField<Ydb::Issue::IssueMessage>* issues)
1768
1742
{
@@ -1871,7 +1845,35 @@ class TKqpExecuterBase : public TActorBootstrapped<TDerived> {
1871
1845
1872
1846
void PassAway () override {
1873
1847
YQL_ENSURE (AlreadyReplied && ResponseEv);
1874
- FillResponseStats ();
1848
+
1849
+ // Fill response stats
1850
+ {
1851
+ auto & response = *ResponseEv->Record .MutableResponse ();
1852
+
1853
+ YQL_ENSURE (Stats);
1854
+
1855
+ ReportEventElapsedTime ();
1856
+
1857
+ Stats->FinishTs = TInstant::Now ();
1858
+ Stats->Finish ();
1859
+
1860
+ if (Stats->CollectStatsByLongTasks || CollectFullStats (Request.StatsMode )) {
1861
+ response.MutableResult ()->MutableStats ()->ClearTxPlansWithStats ();
1862
+ for (ui32 txId = 0 ; txId < Request.Transactions .size (); ++txId) {
1863
+ const auto & tx = Request.Transactions [txId].Body ;
1864
+ auto planWithStats = AddExecStatsToTxPlan (tx->GetPlan (), response.GetResult ().GetStats ());
1865
+ response.MutableResult ()->MutableStats ()->AddTxPlansWithStats (planWithStats);
1866
+ }
1867
+ }
1868
+
1869
+ if (Stats->CollectStatsByLongTasks ) {
1870
+ const auto & txPlansWithStats = response.GetResult ().GetStats ().GetTxPlansWithStats ();
1871
+ if (!txPlansWithStats.empty ()) {
1872
+ LOG_N (" Full stats: " << response.GetResult ().GetStats ());
1873
+ }
1874
+ }
1875
+ }
1876
+
1875
1877
Request.Transactions .crop (0 );
1876
1878
this ->Send (Target, ResponseEv.release ());
1877
1879
0 commit comments