|
3 | 3 | #include <ydb/library/ydb_issue/issue_helpers.h>
|
4 | 4 | #include <ydb/core/kqp/common/events/events.h>
|
5 | 5 | #include <ydb/core/kqp/common/kqp.h>
|
| 6 | +#include <ydb/core/kqp/common/kqp_timeouts.h> |
6 | 7 | #include <ydb/core/kqp/executer_actor/kqp_executer.h>
|
7 | 8 | #include <ydb/core/kqp/proxy_service/kqp_script_executions.h>
|
8 | 9 | #include <ydb/core/kqp/proxy_service/proto/result_set_meta.pb.h>
|
@@ -219,6 +220,7 @@ class TRunScriptActor : public NActors::TActorBootstrapped<TRunScriptActor> {
|
219 | 220 | if (RunState == ERunState::Cancelling) {
|
220 | 221 | NYql::TIssue cancelIssue("Request was canceled by user");
|
221 | 222 | cancelIssue.SetCode(NYql::DEFAULT_ERROR, NYql::TSeverityIds::S_INFO);
|
| 223 | + Issues.AddIssue(std::move(cancelIssue)); |
222 | 224 | }
|
223 | 225 |
|
224 | 226 | auto scriptFinalizeRequest = std::make_unique<TEvScriptFinalizeRequest>(
|
@@ -429,6 +431,13 @@ class TRunScriptActor : public NActors::TActorBootstrapped<TRunScriptActor> {
|
429 | 431 | const auto& issueMessage = record.GetResponse().GetQueryIssues();
|
430 | 432 | NYql::IssuesFromMessage(issueMessage, Issues);
|
431 | 433 |
|
| 434 | + if (record.GetYdbStatus() == Ydb::StatusIds::TIMEOUT) { |
| 435 | + const TDuration timeout = GetQueryTimeout(NKikimrKqp::QUERY_TYPE_SQL_GENERIC_SCRIPT, Request.GetRequest().GetTimeoutMs(), {}, QueryServiceConfig); |
| 436 | + NYql::TIssue timeoutIssue(TStringBuilder() << "Current request timeout is " << timeout.MilliSeconds() << "ms"); |
| 437 | + timeoutIssue.SetCode(NYql::DEFAULT_ERROR, NYql::TSeverityIds::S_INFO); |
| 438 | + Issues.AddIssue(std::move(timeoutIssue)); |
| 439 | + } |
| 440 | + |
432 | 441 | if (record.GetResponse().HasQueryPlan()) {
|
433 | 442 | QueryPlan = record.GetResponse().GetQueryPlan();
|
434 | 443 | }
|
|
0 commit comments