|
18 | 18 | #include <ydb/core/kqp/runtime/kqp_transport.h> |
19 | 19 | #include <ydb/core/kqp/opt/kqp_query_plan.h> |
20 | 20 | #include <ydb/core/tx/columnshard/columnshard.h> |
| 21 | +#include <ydb/core/tx/data_events/common/error_codes.h> |
21 | 22 | #include <ydb/core/tx/datashard/datashard.h> |
22 | 23 | #include <ydb/core/tx/long_tx_service/public/events.h> |
23 | 24 | #include <ydb/core/tx/long_tx_service/public/lock_handle.h> |
@@ -862,37 +863,12 @@ class TKqpDataExecuter : public TKqpExecuterBase<TKqpDataExecuter, EExecType::Da |
862 | 863 | void ShardError(const NKikimrDataEvents::TEvWriteResult& result) { |
863 | 864 | NYql::TIssues issues; |
864 | 865 | NYql::IssuesFromMessage(result.GetIssues(), issues); |
865 | | - |
866 | | - switch (result.GetStatus()) { |
867 | | - case NKikimrDataEvents::TEvWriteResult::STATUS_UNSPECIFIED: |
868 | | - case NKikimrDataEvents::TEvWriteResult::STATUS_PREPARED: |
869 | | - case NKikimrDataEvents::TEvWriteResult::STATUS_COMPLETED: { |
870 | | - YQL_ENSURE(false); |
871 | | - } |
872 | | - case NKikimrDataEvents::TEvWriteResult::STATUS_ABORTED: { |
873 | | - return ReplyErrorAndDie(Ydb::StatusIds::ABORTED, issues); |
874 | | - } |
875 | | - case NKikimrDataEvents::TEvWriteResult::STATUS_DISK_SPACE_EXHAUSTED: |
876 | | - case NKikimrDataEvents::TEvWriteResult::STATUS_INTERNAL_ERROR: { |
877 | | - return ReplyErrorAndDie(Ydb::StatusIds::INTERNAL_ERROR, issues); |
878 | | - } |
879 | | - case NKikimrDataEvents::TEvWriteResult::STATUS_OVERLOADED: { |
880 | | - return ReplyErrorAndDie(Ydb::StatusIds::OVERLOADED, issues); |
881 | | - } |
882 | | - case NKikimrDataEvents::TEvWriteResult::STATUS_CANCELLED: { |
883 | | - return ReplyErrorAndDie(Ydb::StatusIds::CANCELLED, issues); |
884 | | - } |
885 | | - case NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST: { |
886 | | - return ReplyErrorAndDie(Ydb::StatusIds::BAD_REQUEST, issues); |
887 | | - } |
888 | | - case NKikimrDataEvents::TEvWriteResult::STATUS_SCHEME_CHANGED: { |
889 | | - return ReplyErrorAndDie(Ydb::StatusIds::SCHEME_ERROR, issues); |
890 | | - } |
891 | | - case NKikimrDataEvents::TEvWriteResult::STATUS_LOCKS_BROKEN: { |
892 | | - issues.AddIssue(NYql::YqlIssue({}, TIssuesIds::KIKIMR_LOCKS_INVALIDATED, "Transaction locks invalidated.")); |
893 | | - return ReplyErrorAndDie(Ydb::StatusIds::ABORTED, issues); |
894 | | - } |
| 866 | + auto statusConclusion = NEvWrite::NErrorCodes::TOperator::GetStatusInfo(result.GetStatus()); |
| 867 | + AFL_ENSURE(statusConclusion.IsSuccess())("error", statusConclusion.GetErrorMessage()); |
| 868 | + if (result.GetStatus() == NKikimrDataEvents::TEvWriteResult::STATUS_LOCKS_BROKEN) { |
| 869 | + issues.AddIssue(NYql::YqlIssue({}, statusConclusion->GetIssueCode(), statusConclusion->GetIssueGeneralText())); |
895 | 870 | } |
| 871 | + return ReplyErrorAndDie(statusConclusion->GetYdbStatusCode(), issues); |
896 | 872 | } |
897 | 873 |
|
898 | 874 | void PQTabletError(const NKikimrPQ::TEvProposeTransactionResult& result) { |
|
0 commit comments