summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvvvv <[email protected]>2024-11-02 20:16:13 +0300
committervvvv <[email protected]>2024-11-02 20:29:23 +0300
commitc2859fd279d6f460881911637b04622f7b76b1c2 (patch)
tree6647bdaf36d13dbc486727a0a66ce73467ea6fc6
parentd9417f6a9bc844e4b6ac40255999684026433719 (diff)
Moved yql/core/issue YQL-19206
init commit_hash:06ed93798c1bd85fb3b79843b4e9a5507236f4a8
-rw-r--r--yql/essentials/core/issue/protos/issue_id.proto209
-rw-r--r--yql/essentials/core/issue/protos/ya.make13
-rw-r--r--yql/essentials/core/issue/ut/ya.make15
-rw-r--r--yql/essentials/core/issue/ya.make22
-rw-r--r--yql/essentials/core/issue/yql_issue.cpp11
-rw-r--r--yql/essentials/core/issue/yql_issue.h51
-rw-r--r--yql/essentials/core/issue/yql_issue.txt685
-rw-r--r--yql/essentials/core/issue/yql_issue_ut.cpp30
-rw-r--r--yql/essentials/core/ya.make3
-rw-r--r--yql/essentials/ya.make1
10 files changed, 1040 insertions, 0 deletions
diff --git a/yql/essentials/core/issue/protos/issue_id.proto b/yql/essentials/core/issue/protos/issue_id.proto
new file mode 100644
index 00000000000..975efe5e3be
--- /dev/null
+++ b/yql/essentials/core/issue/protos/issue_id.proto
@@ -0,0 +1,209 @@
+package NYql;
+option java_package = "ru.yandex.yql.proto";
+
+import "yql/essentials/public/issue/protos/issue_severity.proto";
+
+message TIssuesIds {
+
+ enum EIssueCode {
+ DEFAULT_ERROR = 0;
+ UNEXPECTED = 1;
+ INFO = 2;
+ WARNING = 3;
+ SUCCESS = 4;
+// core codes
+ CORE = 1000;
+ CORE_GC = 1010;
+ CORE_PRE_TYPE_ANN = 1020;
+ CORE_TYPE_ANN = 1030;
+ CORE_INTENT = 1040;
+ CORE_TABLE_METADATA_LOADER = 1050;
+ CORE_EXEC = 1060;
+ CORE_OPTIMIZATION = 1070;
+ CORE_PARAM_EVALUATION = 1080;
+ CORE_EXPR_EVALUATION = 1081;
+ CORE_POST_TYPE_ANN = 1090;
+
+// core warnings
+ CORE_CAST_YSON_JSON_BYTES = 1100;
+ CORE_FREE_TABLE_PATH_RECORD = 1101;
+ CORE_CAST_INTEGRAL_TO_TIMESTAMP_UNSAFE = 1102;
+ CORE_FREE_KEY_SWITCH = 1103;
+ CORE_NON_PERSISTABLE_ENTITY = 1104;
+ CORE_NON_STREAM_BATCH_UDF = 1105;
+ CORE_FLATTEN_BY_OPT = 1106;
+ CORE_IMPLICIT_BITCAST = 1107;
+ CORE_LEGACY_IN_FOR_EMPTY_OR_NULLABLE = 1108;
+ CORE_LEGACY_RANK_FOR_NULLABLE_KEYS = 1109;
+ CORE_LEGACY_REGEX_ENGINE = 1110;
+ CORE_ALIAS_SHADOWS_COLUMN = 1111;
+ CORE_LINEAGE_INTERNAL_ERROR = 1112;
+
+// core informational
+ CORE_TOP_UNSUPPORTED_BLOCK_TYPES = 1200;
+ CORE_TOP_UNSUPPORTED_BLOCK_CALLABLES = 1201;
+
+// core errors
+ CORE_GC_NODES_LIMIT_EXCEEDED = 1500;
+ CORE_GC_STRINGS_LIMIT_EXCEEDED = 1501;
+
+// kikimr
+ KIKIMR_LOCKS_INVALIDATED = 2001;
+ KIKIMR_LOCKS_ACQUIRE_FAILURE = 2002;
+ KIKIMR_SCHEME_ERROR = 2003;
+ KIKIMR_COMPILE_ERROR = 2004;
+ KIKIMR_TEMPORARILY_UNAVAILABLE = 2005;
+ KIKIMR_OVERLOADED = 2006;
+ KIKIMR_BAD_OPERATION = 2008;
+ KIKIMR_MIXED_SCHEME_DATA_TX = 2009;
+ KIKIMR_MULTIPLE_SCHEME_MODIFICATIONS = 2010;
+ KIKIMR_OPERATION_ABORTED = 2011;
+ KIKIMR_CONSTRAINT_VIOLATION = 2012;
+ KIKIMR_RESULT_UNAVAILABLE = 2013;
+ KIKIMR_TOO_MANY_TRANSACTIONS = 2014;
+ KIKIMR_TRANSACTION_NOT_FOUND = 2015;
+ KIKIMR_PRAGMA_NOT_SUPPORTED = 2016;
+ KIKIMR_BAD_REQUEST = 2017;
+ KIKIMR_ACCESS_DENIED = 2018;
+ KIKIMR_QUERY_INVALIDATED = 2019;
+ KIKIMR_TIMEOUT = 2020;
+ KIKIMR_OPERATION_CANCELLED = 2021;
+ KIKIMR_UNAUTHENTICATED = 2022;
+ KIKIMR_UNIMPLEMENTED = 2023;
+ KIKIMR_INDEX_METADATA_LOAD_FAILED = 2024;
+ KIKIMR_GRPC_CONTEXT_ERROR = 2025;
+ KIKIMR_OPERATION_STATE_UNKNOWN = 2026;
+ KIKIMR_INDEX_IS_NOT_READY = 2027;
+ KIKIMR_SCHEME_MISMATCH = 2028;
+ KIKIMR_PRECONDITION_FAILED = 2029;
+ KIKIMR_UNSUPPORTED = 2030;
+ KIKIMR_BAD_COLUMN_TYPE = 2031;
+ KIKIMR_NO_COLUMN_DEFAULT_VALUE = 2032;
+ KIKIMR_DISK_SPACE_EXHAUSTED = 2033;
+ KIKIMR_SCHEMA_CHANGED = 2034;
+ KIKIMR_INTERNAL_ERROR = 2035;
+
+// kikimr warnings
+ KIKIMR_READ_MODIFIED_TABLE = 2500;
+ KIKIMR_OPERATION_REVERTED = 2501;
+ KIKIMR_UPDATE_TABLE_WITH_DELETES = 2502;
+ KIKIMR_WRONG_INDEX_USAGE = 2503;
+
+// yt
+ YT_TABLE_PATH_RECORD_FOR_TMP = 3001;
+ YT_INFER_SCHEMA = 3002;
+ YT_ACCESS_DENIED = 3003;
+ YT_TABLE_NOT_FOUND = 3004;
+ YT_NATIVE_PRAGMA = 3005;
+ YT_VIEW_NOT_FOUND = 3006;
+ YT_SCHEMELESS_TABLE = 3007;
+ YT_ENTRY_NOT_TABLE_OR_VIEW = 3008;
+ YT_CONCURRENT_TABLE_MODIF = 3009;
+ YT_LATE_TABLE_XLOCK = 3010;
+ YT_SORT_ORDER_CHANGE = 3011;
+ YT_MAX_DATAWEIGHT_PER_JOB_EXCEEDED = 3012;
+ YT_WARN_TABLE_DOES_NOT_EXIST = 3013;
+ YT_ROWSPEC_HIDES_FIELDS = 3014;
+ YT_ROWSPEC_DIFF_SORT = 3015;
+ YT_NATIVE_DESC_SORT_IGNORED = 3016;
+ YT_MISSING_PROTO_FIELD = 3017;
+ YT_FOLDER_INPUT_IS_NOT_A_FOLDER = 3018;
+ YT_SECURE_DATA_IN_COMMON_TMP = 3019;
+
+// yql parser warnings
+ YQL_PRAGMA_WARNING_MSG = 4500;
+ YQL_CONST_SUBREQUEST_IN_LIST = 4501;
+ YQL_AGGREGATE_BY_WIN_FUNC_WITHOUT_ORDER_BY = 4502;
+ YQL_DEPRECATED_INFERSCHEME = 4503;
+ YQL_ORDER_BY_WITHOUT_LIMIT_IN_SUBQUERY = 4504;
+ YQL_DEPRECATED_DOUBLE_QUOTE_IN_BRACKETS = 4505;
+ YQL_DEPRECATED_JSON_UDF = 4506;
+ YQL_MISSING_IS_BEFORE_NOT_NULL = 4507;
+ YQL_DEPRECATED_TINY_INT_LITERAL_SUFFIX = 4508;
+ YQL_DEPRECATED_DATETIME2 = 4509;
+ YQL_S_EXPRESSIONS_CALL = 4510;
+ YQL_DEPRECATED_INTERVAL_CONSTANT = 4511;
+ YQL_DEPRECATED_FUNCTION_OR_SIGNATURE = 4512;
+ YQL_DEPRECATED_INLINE_ACTION_TERMINATOR = 4513;
+ YQL_MULTIWAY_JOIN_WITH_USING = 4514;
+ YQL_DEPRECATED_V0_SYNTAX = 4515;
+ YQL_UNNAMED_COLUMN = 4516;
+ YQL_SOURCE_SELECT_COLUMN_MISMATCH = 4517;
+ YQL_DEPRECATED_PRAGMA = 4518;
+ YQL_EMPTY_WINDOW_FRAME = 4520;
+ YQL_RANK_WITHOUT_ORDER_BY = 4521;
+ YQL_LIMIT_ORDER_BY_WITH_UNION = 4522;
+ YQL_DISCARD_INTO_RESULT_BY_WITH_UNION = 4523;
+ YQL_DEPRECATED_UDF_FUNCTION = 4524;
+ YQL_EMPTY_TABLENAME_RESULT = 4525;
+ YQL_HAVING_WITHOUT_AGGREGATION_IN_SELECT_DISTINCT = 4526;
+ YQL_UNUSED_SYMBOL = 4527;
+ YQL_MIXED_TZ = 4528;
+ YQL_OPERATION_WILL_RETURN_NULL = 4529;
+ YQL_JSON_QUERY_RETURNING_JSON_IS_DEPRECATED = 4530;
+ YQL_DEPRECATED_LIST_FLATMAP_OPTIONAL = 4531;
+ YQL_PROJECTION_ALIAS_IS_REFERENCED_IN_GROUP_BY = 4532;
+ YQL_TABLE_BINDING_DUPLICATE = 4533;
+ YQL_UNUSED_HINT = 4534;
+ YQL_DEPRECATED_POSITIONAL_SCHEMA = 4535;
+ YQL_DUPLICATE_DECLARE = 4536;
+ YQL_OFFSET_WITHOUT_SORT = 4537;
+ YQL_DEPRECATED_BINDINGS = 4538;
+ YQL_HINT_INVALID_PARAMETERS = 4539;
+ YQL_UNTYPED_STRING_LITERALS = 4540;
+
+// yql parser errors
+ YQL_NOT_ALLOWED_IN_DISCOVERY = 4600;
+ YQL_DISABLED_BINDINGS = 4601;
+
+// jsonpath errors
+ JSONPATH_PARSE_ERROR = 4700;
+ JSONPATH_EXPECTED_OBJECT = 4701;
+ JSONPATH_MEMBER_NOT_FOUND = 4702;
+ JSONPATH_EXPECTED_ARRAY = 4703;
+ JSONPATH_INVALID_ARRAY_INDEX = 4704;
+ JSONPATH_ARRAY_INDEX_OUT_OF_BOUNDS = 4705;
+ JSONPATH_INVALID_ARRAY_INDEX_RANGE = 4706;
+ JSONPATH_LAST_OUTSIDE_OF_ARRAY_SUBSCRIPT = 4707;
+ JSONPATH_INVALID_UNARY_OPERATION_ARGUMENT_TYPE = 4708;
+ JSONPATH_INVALID_BINARY_OPERATION_ARGUMENT = 4709;
+ JSONPATH_INVALID_BINARY_OPERATION_ARGUMENT_TYPE = 4710;
+ JSONPATH_UNDEFINED_VARIABLE = 4711;
+ JSONPATH_DIVISION_BY_ZERO = 4712;
+ JSONPATH_BINARY_OPERATION_RESULT_INFINITY = 4713;
+ JSONPATH_INVALID_LOGICAL_OPERATION_ARGUMENT = 4714;
+ JSONPATH_FILTER_OBJECT_OUTSIDE_OF_FILTER = 4715;
+ JSONPATH_INVALID_NUMERIC_METHOD_ARGUMENT = 4716;
+ JSONPATH_INVALID_DOUBLE_METHOD_ARGUMENT = 4717;
+ JSONPATH_INVALID_NUMBER_STRING = 4718;
+ JSONPATH_INFINITE_NUMBER_STRING = 4719;
+ JSONPATH_INVALID_KEYVALUE_METHOD_ARGUMENT = 4720;
+ JSONPATH_TYPE_CHECK_ERROR = 4721;
+ JSONPATH_INVALID_IS_UNKNOWN_ARGUMENT = 4722;
+ JSONPATH_INVALID_STARTS_WITH_ARGUMENT = 4723;
+
+// stat
+ STAT_DEPRECATED_STRING_TREE = 5000;
+ STAT_ACCESS_DENIED = 5001;
+
+// dq
+ DQ_GATEWAY_ERROR = 6000;
+ DQ_GATEWAY_NEED_FALLBACK_ERROR = 6001;
+ DQ_OPTIMIZE_ERROR = 6002;
+
+// pg
+ PG_NO_LOCKING_SUPPORT = 7000;
+ PG_COMPAT = 7001;
+
+// range [200000, 399999) reserved for KiKiMR issue codes, do not use!
+
+ }
+
+ message TIssueId {
+ optional EIssueCode code = 2;
+ optional TSeverityIds.ESeverityId severity = 1;
+ optional string format = 3;
+ }
+
+ repeated TIssueId ids = 1;
+}
diff --git a/yql/essentials/core/issue/protos/ya.make b/yql/essentials/core/issue/protos/ya.make
new file mode 100644
index 00000000000..8dc82e3720d
--- /dev/null
+++ b/yql/essentials/core/issue/protos/ya.make
@@ -0,0 +1,13 @@
+PROTO_LIBRARY()
+
+SRCS(
+ issue_id.proto
+)
+
+PEERDIR(
+ yql/essentials/public/issue/protos
+)
+
+EXCLUDE_TAGS(GO_PROTO)
+
+END()
diff --git a/yql/essentials/core/issue/ut/ya.make b/yql/essentials/core/issue/ut/ya.make
new file mode 100644
index 00000000000..738c471dafb
--- /dev/null
+++ b/yql/essentials/core/issue/ut/ya.make
@@ -0,0 +1,15 @@
+UNITTEST_FOR(yql/essentials/core/issue)
+
+FORK_SUBTESTS()
+
+SRCS(
+ yql_issue_ut.cpp
+)
+
+PEERDIR(
+)
+
+TIMEOUT(300)
+SIZE(MEDIUM)
+
+END()
diff --git a/yql/essentials/core/issue/ya.make b/yql/essentials/core/issue/ya.make
new file mode 100644
index 00000000000..f4e8f9d6535
--- /dev/null
+++ b/yql/essentials/core/issue/ya.make
@@ -0,0 +1,22 @@
+LIBRARY()
+
+SRCS(
+ yql_issue.cpp
+)
+
+PEERDIR(
+ library/cpp/resource
+ contrib/libs/protobuf
+ yql/essentials/public/issue
+ yql/essentials/core/issue/protos
+)
+
+RESOURCE(
+ yql/essentials/core/issue/yql_issue.txt yql_issue.txt
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/yql/essentials/core/issue/yql_issue.cpp b/yql/essentials/core/issue/yql_issue.cpp
new file mode 100644
index 00000000000..3d1ea9b9fe1
--- /dev/null
+++ b/yql/essentials/core/issue/yql_issue.cpp
@@ -0,0 +1,11 @@
+#include "yql_issue.h"
+
+namespace NYql {
+
+const char IssueMapResource[] = "yql_issue.txt";
+
+static_assert(DEFAULT_ERROR == TIssuesIds::DEFAULT_ERROR,
+ "value of particular and common error mismatched for \"DEFAULT_ERROR\"");
+static_assert(UNEXPECTED_ERROR == TIssuesIds::UNEXPECTED,
+ "value of particular and common error mismatched for \"UNEXPECTED_ERROR\"");
+}
diff --git a/yql/essentials/core/issue/yql_issue.h b/yql/essentials/core/issue/yql_issue.h
new file mode 100644
index 00000000000..8077f23c2f0
--- /dev/null
+++ b/yql/essentials/core/issue/yql_issue.h
@@ -0,0 +1,51 @@
+#pragma once
+
+#include <yql/essentials/core/issue/protos/issue_id.pb.h>
+#include <yql/essentials/public/issue/yql_issue.h>
+#include <yql/essentials/public/issue/yql_issue_id.h>
+
+#ifdef _win_
+#ifdef GetMessage
+#undef GetMessage
+#endif
+#endif
+
+namespace NYql {
+
+extern const char IssueMapResource[14];
+using EYqlIssueCode = TIssuesIds::EIssueCode;
+
+inline ESeverity GetSeverity(EYqlIssueCode id) {
+ return GetSeverity<TIssuesIds, IssueMapResource>(id);
+}
+
+inline TString GetMessage(EYqlIssueCode id) {
+ return GetMessage<TIssuesIds, IssueMapResource>(id);
+}
+
+inline TIssue& SetIssueCode(EYqlIssueCode id, TIssue& issue) {
+ issue.SetCode(id, GetSeverity(id));
+ return issue;
+}
+
+inline TString IssueCodeToString(EYqlIssueCode id) {
+ const TString& message = GetMessage(id);
+ if (message) {
+ return message;
+ } else {
+ return IssueCodeToString<TIssuesIds>(id);
+ }
+}
+
+inline TIssue YqlIssue(const TPosition& position, EYqlIssueCode id, const TString& message) {
+ TIssue issue(position, message);
+ SetIssueCode(id, issue);
+
+ return issue;
+}
+
+inline TIssue YqlIssue(const TPosition& position, EYqlIssueCode id) {
+ return YqlIssue(position, id, IssueCodeToString(id));
+}
+
+}
diff --git a/yql/essentials/core/issue/yql_issue.txt b/yql/essentials/core/issue/yql_issue.txt
new file mode 100644
index 00000000000..82a0a1eecd3
--- /dev/null
+++ b/yql/essentials/core/issue/yql_issue.txt
@@ -0,0 +1,685 @@
+ids {
+ code: UNEXPECTED
+ severity: S_FATAL
+}
+ids {
+ code: DEFAULT_ERROR
+ severity: S_ERROR
+}
+ids {
+ code: INFO
+ severity: S_INFO
+}
+ids {
+ code: SUCCESS
+ severity: S_INFO
+}
+ids {
+ code: WARNING
+ severity: S_WARNING
+}
+ids {
+ code: CORE
+ severity: S_INFO
+}
+ids {
+ code: CORE_GC
+ severity: S_INFO
+}
+ids {
+ code: CORE_PRE_TYPE_ANN
+ severity: S_INFO
+ format: "Pre type annotation"
+}
+ids {
+ code: CORE_TYPE_ANN
+ severity: S_INFO
+ format: "Type annotation"
+}
+ids {
+ code: CORE_POST_TYPE_ANN
+ severity: S_INFO
+ format: "Post type annotation"
+}
+ids {
+ code: CORE_INTENT
+ severity: S_INFO
+ format: "Table intent determination"
+}
+ids {
+ code: CORE_TABLE_METADATA_LOADER
+ severity: S_INFO
+ format: "Table metadata loading"
+}
+ids {
+ code: CORE_EXEC
+ severity: S_INFO
+ format: "Execution"
+}
+ids {
+ code: CORE_OPTIMIZATION
+ severity: S_INFO
+ format: "Optimization"
+}
+ids {
+ code: CORE_PARAM_EVALUATION
+ severity: S_INFO
+ format: "Parameters evaluation"
+}
+ids {
+ code: CORE_EXPR_EVALUATION
+ severity: S_INFO
+ format: "Expression evaluation"
+}
+ids {
+ code: CORE_CAST_YSON_JSON_BYTES
+ severity: S_WARNING
+}
+ids {
+ code: CORE_FREE_TABLE_PATH_RECORD
+ severity: S_WARNING
+}
+ids {
+ code: CORE_CAST_INTEGRAL_TO_TIMESTAMP_UNSAFE
+ severity: S_WARNING
+}
+ids {
+ code: CORE_FREE_KEY_SWITCH
+ severity: S_WARNING
+}
+ids {
+ code: CORE_NON_PERSISTABLE_ENTITY
+ severity: S_WARNING
+}
+ids {
+ code: CORE_NON_STREAM_BATCH_UDF
+ severity: S_WARNING
+}
+ids {
+ code: CORE_FLATTEN_BY_OPT
+ severity: S_WARNING
+}
+ids {
+ code: CORE_IMPLICIT_BITCAST
+ severity: S_WARNING
+}
+ids {
+ code: CORE_LEGACY_IN_FOR_EMPTY_OR_NULLABLE
+ severity: S_WARNING
+}
+ids {
+ code: CORE_LEGACY_RANK_FOR_NULLABLE_KEYS
+ severity: S_WARNING
+}
+ids {
+ code: CORE_LEGACY_REGEX_ENGINE
+ severity: S_WARNING
+}
+ids {
+ code: CORE_ALIAS_SHADOWS_COLUMN
+ severity: S_WARNING
+}
+ids {
+ code: CORE_GC_NODES_LIMIT_EXCEEDED
+ severity: S_ERROR
+}
+ids {
+ code: CORE_GC_STRINGS_LIMIT_EXCEEDED
+ severity: S_ERROR
+}
+ids {
+ code: KIKIMR_LOCKS_INVALIDATED
+ severity: S_ERROR
+ format: "Transaction locks invalidated."
+}
+ids {
+ code: KIKIMR_LOCKS_ACQUIRE_FAILURE
+ severity: S_ERROR
+ format: "Failed to acquire transaction locks."
+}
+ids {
+ code: KIKIMR_SCHEME_ERROR
+ severity: S_ERROR
+ format: "Incorrect scheme found while performing Kikimr operation."
+}
+ids {
+ code: KIKIMR_COMPILE_ERROR
+ severity: S_ERROR
+ format: "Error while compiling Kikimr program."
+}
+ids {
+ code: KIKIMR_TEMPORARILY_UNAVAILABLE
+ severity: S_ERROR
+ format: "Kikimr cluster or one of its subsystems was unavailable."
+}
+ids {
+ code: KIKIMR_OVERLOADED
+ severity: S_ERROR
+ format: "Kikimr cluster or one of its subsystems is overloaded."
+}
+ids {
+ code: KIKIMR_BAD_OPERATION
+ severity: S_ERROR
+ format: "Bad operation."
+}
+ids {
+ code: KIKIMR_MIXED_SCHEME_DATA_TX
+ severity: S_ERROR
+}
+ids {
+ code: KIKIMR_MULTIPLE_SCHEME_MODIFICATIONS
+ severity: S_ERROR
+ format: "Multiple simultaneous modifications of Kikimr scheme element."
+}
+ids {
+ code: KIKIMR_OPERATION_ABORTED
+ severity: S_ERROR
+ format: "Operation aborted."
+}
+ids {
+ code: KIKIMR_CONSTRAINT_VIOLATION
+ severity: S_ERROR
+ format: "Constraint violation in Kikimr operation."
+}
+ids {
+ code: KIKIMR_RESULT_UNAVAILABLE
+ severity: S_ERROR
+ format: "Result of Kikimr query didn't meet requirements and isn't available"
+}
+ids {
+ code: KIKIMR_TOO_MANY_TRANSACTIONS
+ severity: S_ERROR
+ format: "Exceeded maximum allowed number of active transactions"
+}
+ids {
+ code: KIKIMR_TRANSACTION_NOT_FOUND
+ severity: S_ERROR
+ format: "Transaction not found"
+}
+ids {
+ code: KIKIMR_PRAGMA_NOT_SUPPORTED
+ severity: S_ERROR
+ format: "Pragma not supported in current context."
+}
+ids {
+ code: KIKIMR_BAD_REQUEST
+ severity: S_ERROR
+ format: "Bad request."
+}
+ids {
+ code: KIKIMR_ACCESS_DENIED
+ severity: S_ERROR
+ format: "Access denied."
+}
+ids {
+ code: KIKIMR_QUERY_INVALIDATED
+ severity: S_ERROR
+ format: "Query invalidated."
+}
+ids {
+ code: KIKIMR_TIMEOUT
+ severity: S_ERROR
+ format: "Operation timeout."
+}
+ids {
+ code: KIKIMR_OPERATION_CANCELLED
+ severity: S_ERROR
+ format: "Operation cancelled."
+}
+ids {
+ code: KIKIMR_UNAUTHENTICATED
+ severity: S_ERROR
+ format: "The request does not have valid authentication credentials."
+}
+ids {
+ code: KIKIMR_UNIMPLEMENTED
+ severity: S_ERROR
+ format: "Operation is not implemented or not supported."
+}
+ids {
+ code: KIKIMR_READ_MODIFIED_TABLE
+ severity: S_WARNING
+}
+ids {
+ code: KIKIMR_OPERATION_REVERTED
+ severity: S_WARNING
+}
+ids {
+ code: KIKIMR_UPDATE_TABLE_WITH_DELETES
+ severity: S_WARNING
+}
+ids {
+ code: KIKIMR_WRONG_INDEX_USAGE
+ severity: S_WARNING
+}
+ids {
+ code: KIKIMR_GRPC_CONTEXT_ERROR
+ severity: S_ERROR
+ format: "Operation with grpc context failed"
+}
+ids {
+ code: KIKIMR_OPERATION_STATE_UNKNOWN
+ severity: S_ERROR
+ format: "State of operation is unknown."
+}
+ids {
+ code: KIKIMR_INDEX_IS_NOT_READY
+ severity: S_ERROR
+}
+ids {
+ code: KIKIMR_INDEX_METADATA_LOAD_FAILED
+ severity: S_ERROR
+}
+ids {
+ code: KIKIMR_SCHEME_MISMATCH
+ severity: S_ERROR
+ format: "Scheme mismatch found while executing query."
+}
+ids {
+ code: KIKIMR_PRECONDITION_FAILED
+ severity: S_ERROR
+}
+ids {
+ code: KIKIMR_UNSUPPORTED
+ severity: S_ERROR
+}
+ids {
+ code: KIKIMR_BAD_COLUMN_TYPE
+ severity: S_ERROR
+}
+ids {
+ code: KIKIMR_NO_COLUMN_DEFAULT_VALUE
+ severity: S_ERROR
+}
+ids {
+ code: KIKIMR_DISK_SPACE_EXHAUSTED
+ severity: S_ERROR
+}
+ids {
+ code: KIKIMR_SCHEMA_CHANGED
+ severity: S_ERROR
+}
+ids {
+ code: KIKIMR_INTERNAL_ERROR
+ severity: S_ERROR
+}
+ids {
+ code: YQL_PRAGMA_WARNING_MSG
+ severity: S_WARNING
+}
+ids {
+ code: YQL_CONST_SUBREQUEST_IN_LIST
+ severity: S_WARNING
+}
+ids {
+ code: YQL_AGGREGATE_BY_WIN_FUNC_WITHOUT_ORDER_BY
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DEPRECATED_INFERSCHEME
+ severity: S_WARNING
+}
+ids {
+ code: YQL_ORDER_BY_WITHOUT_LIMIT_IN_SUBQUERY
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DEPRECATED_DOUBLE_QUOTE_IN_BRACKETS
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DEPRECATED_JSON_UDF
+ severity: S_WARNING
+}
+ids {
+ code: YQL_MISSING_IS_BEFORE_NOT_NULL
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DEPRECATED_TINY_INT_LITERAL_SUFFIX
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DEPRECATED_INTERVAL_CONSTANT
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DEPRECATED_PRAGMA
+ severity: S_WARNING
+}
+ids {
+ code: YT_TABLE_PATH_RECORD_FOR_TMP
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DEPRECATED_DATETIME2
+ severity: S_WARNING
+}
+ids {
+ code: YQL_S_EXPRESSIONS_CALL
+ severity: S_WARNING
+}
+ids {
+ code: YT_INFER_SCHEMA
+ severity: S_ERROR
+}
+ids {
+ code: YT_ACCESS_DENIED
+ severity: S_ERROR
+}
+ids {
+ code: YT_TABLE_NOT_FOUND
+ severity: S_ERROR
+}
+ids {
+ code: YT_NATIVE_PRAGMA
+ severity: S_WARNING
+}
+ids {
+ code: YT_VIEW_NOT_FOUND
+ severity: S_ERROR
+}
+ids {
+ code: YT_SCHEMELESS_TABLE
+ severity: S_ERROR
+}
+ids {
+ code: YT_ENTRY_NOT_TABLE_OR_VIEW
+ severity: S_ERROR
+}
+ids {
+ code: YT_CONCURRENT_TABLE_MODIF
+ severity: S_ERROR
+}
+ids {
+ code: YT_LATE_TABLE_XLOCK
+ severity: S_WARNING
+}
+ids {
+ code: YT_SORT_ORDER_CHANGE
+ severity: S_WARNING
+}
+ids {
+ code: YT_MAX_DATAWEIGHT_PER_JOB_EXCEEDED
+ severity: S_ERROR
+}
+ids {
+ code: YT_WARN_TABLE_DOES_NOT_EXIST
+ severity: S_WARNING
+}
+ids {
+ code: YT_ROWSPEC_HIDES_FIELDS
+ severity: S_WARNING
+}
+ids {
+ code: YT_ROWSPEC_DIFF_SORT
+ severity: S_WARNING
+}
+ids {
+ code: YT_NATIVE_DESC_SORT_IGNORED
+ severity: S_WARNING
+}
+ids {
+ code: YT_MISSING_PROTO_FIELD
+ severity: S_WARNING
+}
+ids {
+ code: STAT_DEPRECATED_STRING_TREE
+ severity: S_WARNING
+}
+ids {
+ code: STAT_ACCESS_DENIED
+ severity: S_ERROR
+}
+ids {
+ code: YQL_DEPRECATED_FUNCTION_OR_SIGNATURE
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DEPRECATED_INLINE_ACTION_TERMINATOR
+ severity: S_WARNING
+}
+ids {
+ code: YQL_MULTIWAY_JOIN_WITH_USING
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DEPRECATED_V0_SYNTAX
+ severity: S_WARNING
+}
+ids {
+ code: YQL_UNNAMED_COLUMN
+ severity: S_WARNING
+}
+ids {
+ code: YQL_SOURCE_SELECT_COLUMN_MISMATCH
+ severity: S_WARNING
+}
+ids {
+ code: YQL_NOT_ALLOWED_IN_DISCOVERY
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_PARSE_ERROR
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_EXPECTED_OBJECT
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_MEMBER_NOT_FOUND
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_EXPECTED_ARRAY
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_INVALID_ARRAY_INDEX
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_ARRAY_INDEX_OUT_OF_BOUNDS
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_INVALID_ARRAY_INDEX_RANGE
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_LAST_OUTSIDE_OF_ARRAY_SUBSCRIPT
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_INVALID_UNARY_OPERATION_ARGUMENT_TYPE
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_INVALID_BINARY_OPERATION_ARGUMENT
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_INVALID_BINARY_OPERATION_ARGUMENT_TYPE
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_UNDEFINED_VARIABLE
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_DIVISION_BY_ZERO
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_BINARY_OPERATION_RESULT_INFINITY
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_INVALID_LOGICAL_OPERATION_ARGUMENT
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_FILTER_OBJECT_OUTSIDE_OF_FILTER
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_INVALID_NUMERIC_METHOD_ARGUMENT
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_INVALID_DOUBLE_METHOD_ARGUMENT
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_INVALID_NUMBER_STRING
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_INFINITE_NUMBER_STRING
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_INVALID_KEYVALUE_METHOD_ARGUMENT
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_TYPE_CHECK_ERROR
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_INVALID_IS_UNKNOWN_ARGUMENT
+ severity: S_ERROR
+}
+ids {
+ code: JSONPATH_INVALID_STARTS_WITH_ARGUMENT
+ severity: S_ERROR
+}
+ids {
+ code: YQL_EMPTY_WINDOW_FRAME
+ severity: S_WARNING
+}
+ids {
+ code: YQL_RANK_WITHOUT_ORDER_BY
+ severity: S_WARNING
+}
+ids {
+ code: YQL_LIMIT_ORDER_BY_WITH_UNION
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DISCARD_INTO_RESULT_BY_WITH_UNION
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DEPRECATED_UDF_FUNCTION
+ severity: S_WARNING
+}
+ids {
+ code: YQL_EMPTY_TABLENAME_RESULT
+ severity: S_WARNING
+}
+ids {
+ code: YQL_HAVING_WITHOUT_AGGREGATION_IN_SELECT_DISTINCT
+ severity: S_WARNING
+}
+ids {
+ code: YQL_UNUSED_SYMBOL
+ severity: S_WARNING
+}
+ids {
+ code: YQL_MIXED_TZ
+ severity: S_WARNING
+}
+ids {
+ code: YQL_OPERATION_WILL_RETURN_NULL
+ severity: S_WARNING
+}
+ids {
+ code: YQL_JSON_QUERY_RETURNING_JSON_IS_DEPRECATED
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DEPRECATED_LIST_FLATMAP_OPTIONAL
+ severity: S_WARNING
+}
+ids {
+ code: YQL_PROJECTION_ALIAS_IS_REFERENCED_IN_GROUP_BY
+ severity: S_WARNING
+}
+ids {
+ code: YQL_TABLE_BINDING_DUPLICATE
+ severity: S_WARNING
+}
+ids {
+ code: YQL_UNUSED_HINT
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DEPRECATED_POSITIONAL_SCHEMA
+ severity: S_WARNING
+}
+ids {
+ code: DQ_GATEWAY_ERROR
+ severity: S_ERROR
+}
+ids {
+ code: DQ_GATEWAY_NEED_FALLBACK_ERROR
+ severity: S_ERROR
+}
+ids {
+ code: DQ_OPTIMIZE_ERROR
+ severity: S_ERROR
+}
+ids {
+ code: YQL_DUPLICATE_DECLARE
+ severity: S_WARNING
+}
+ids {
+ code: YT_FOLDER_INPUT_IS_NOT_A_FOLDER
+ severity: S_ERROR
+}
+ids {
+ code: YQL_OFFSET_WITHOUT_SORT
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DEPRECATED_BINDINGS
+ severity: S_WARNING
+}
+ids {
+ code: YQL_DISABLED_BINDINGS
+ severity: S_ERROR
+}
+ids {
+ code: YQL_HINT_INVALID_PARAMETERS
+ severity: S_WARNING
+}
+ids {
+ code: PG_NO_LOCKING_SUPPORT
+ severity: S_WARNING
+}
+ids {
+ code: PG_COMPAT
+ severity: S_WARNING
+}
+ids {
+ code: YQL_UNTYPED_STRING_LITERALS
+ severity: S_WARNING
+}
+ids {
+ code: CORE_LINEAGE_INTERNAL_ERROR
+ severity: S_WARNING
+}
+ids {
+ code: YT_SECURE_DATA_IN_COMMON_TMP
+ severity: S_WARNING
+}
+ids {
+ code: CORE_TOP_UNSUPPORTED_BLOCK_TYPES
+ severity: S_INFO
+}
+ids {
+ code: CORE_TOP_UNSUPPORTED_BLOCK_CALLABLES
+ severity: S_INFO
+}
diff --git a/yql/essentials/core/issue/yql_issue_ut.cpp b/yql/essentials/core/issue/yql_issue_ut.cpp
new file mode 100644
index 00000000000..fa8f97e63a3
--- /dev/null
+++ b/yql/essentials/core/issue/yql_issue_ut.cpp
@@ -0,0 +1,30 @@
+#include <library/cpp/testing/unittest/registar.h>
+
+#include "yql_issue.h"
+
+using namespace NYql;
+
+Y_UNIT_TEST_SUITE(TIssuesDataTest) {
+ Y_UNIT_TEST(SeverityMapTest) {
+ auto severity = GetSeverity(TIssuesIds::UNEXPECTED);
+ auto severityName = SeverityToString(severity);
+ UNIT_ASSERT_VALUES_EQUAL(static_cast<ui32>(severity),
+ static_cast<ui32>(TSeverityIds::S_FATAL));
+ UNIT_ASSERT_VALUES_EQUAL(severityName, "Fatal");
+ }
+
+ Y_UNIT_TEST(UnknownSeverityNameTest) {
+ auto severityName = SeverityToString(static_cast<ESeverity>(999));
+ UNIT_ASSERT_VALUES_EQUAL(severityName, "Unknown");
+ }
+
+ Y_UNIT_TEST(IssueNameTest) {
+ auto issueName = IssueCodeToString(TIssuesIds::DEFAULT_ERROR);
+ UNIT_ASSERT_VALUES_EQUAL(issueName, "Default error");
+ }
+
+ Y_UNIT_TEST(IssueDefaultErrorNumber) {
+ UNIT_ASSERT_VALUES_EQUAL((ui32)TIssuesIds::DEFAULT_ERROR, 0);
+ }
+
+}
diff --git a/yql/essentials/core/ya.make b/yql/essentials/core/ya.make
new file mode 100644
index 00000000000..fa575c59d87
--- /dev/null
+++ b/yql/essentials/core/ya.make
@@ -0,0 +1,3 @@
+RECURSE(
+ issue
+)
diff --git a/yql/essentials/ya.make b/yql/essentials/ya.make
index 513c70626ff..c789ea6e49b 100644
--- a/yql/essentials/ya.make
+++ b/yql/essentials/ya.make
@@ -1,6 +1,7 @@
SUBSCRIBER(g:yql)
RECURSE(
+ core
public
tools
udfs