@@ -133,15 +133,19 @@ class TKqpRunner::TImpl {
133
133
134
134
bool ExecuteQuery (const TString& query, NKikimrKqp::EQueryAction action, const TString& traceId, EQueryType queryType) {
135
135
StartScriptTraceOpt ();
136
+ StartTime_ = TInstant::Now ();
136
137
138
+ TString queryTypeStr;
137
139
TQueryMeta meta;
138
140
TRequestResult status;
139
141
switch (queryType) {
140
142
case EQueryType::ScriptQuery:
143
+ queryTypeStr = " Generic" ;
141
144
status = YdbSetup_.QueryRequest (query, action, traceId, meta, ResultSets_, GetProgressCallback ());
142
145
break ;
143
146
144
147
case EQueryType::YqlScriptQuery:
148
+ queryTypeStr = " Yql script" ;
145
149
status = YdbSetup_.YqlScriptRequest (query, action, traceId, meta, ResultSets_);
146
150
break ;
147
151
@@ -153,8 +157,9 @@ class TKqpRunner::TImpl {
153
157
TYdbSetup::StopTraceOpt ();
154
158
155
159
PrintScriptAst (meta.Ast );
156
-
160
+ PrintScriptProgress (ExecutionMeta_. Plan );
157
161
PrintScriptPlan (meta.Plan );
162
+ PrintScriptFinish (meta, queryTypeStr);
158
163
159
164
if (!status.IsSuccess ()) {
160
165
Cerr << CerrColors_.Red () << " Failed to execute query, reason:" << CerrColors_.Default () << Endl << status.ToString () << Endl;
@@ -220,6 +225,7 @@ class TKqpRunner::TImpl {
220
225
221
226
private:
222
227
bool WaitScriptExecutionOperation () {
228
+ StartTime_ = TInstant::Now ();
223
229
ExecutionMeta_ = TExecutionMeta ();
224
230
225
231
TDuration getOperationPeriod = TDuration::Seconds (1 );
@@ -245,8 +251,8 @@ class TKqpRunner::TImpl {
245
251
}
246
252
247
253
PrintScriptAst (ExecutionMeta_.Ast );
248
-
249
254
PrintScriptPlan (ExecutionMeta_.Plan );
255
+ PrintScriptFinish (ExecutionMeta_, " Script" );
250
256
251
257
if (!status.IsSuccess () || ExecutionMeta_.ExecutionStatus != NYdb::NQuery::EExecStatus::Completed) {
252
258
Cerr << CerrColors_.Red () << " Failed to execute script, invalid final status, reason:" << CerrColors_.Default () << Endl << status.ToString () << Endl;
@@ -377,6 +383,19 @@ class TKqpRunner::TImpl {
377
383
}
378
384
}
379
385
386
+ void PrintScriptFinish (const TQueryMeta& meta, const TString& queryType) const {
387
+ Cout << CoutColors_.Cyan () << queryType << " request finished." ;
388
+ if (meta.TotalDuration ) {
389
+ Cout << " Total duration: " << meta.TotalDuration ;
390
+ } else {
391
+ Cout << " Estimated duration: " << TInstant::Now () - StartTime_;
392
+ }
393
+ if (meta.QueuedTime ) {
394
+ Cout << " , Queued time: " << meta.QueuedTime ;
395
+ }
396
+ Cout << CoutColors_.Default () << Endl;
397
+ }
398
+
380
399
private:
381
400
TRunnerOptions Options_;
382
401
@@ -388,6 +407,7 @@ class TKqpRunner::TImpl {
388
407
TString ExecutionOperation_;
389
408
TExecutionMeta ExecutionMeta_;
390
409
std::vector<Ydb::ResultSet> ResultSets_;
410
+ TInstant StartTime_;
391
411
};
392
412
393
413
0 commit comments