YugabyteDB (2.13.0.0-b42, bfc6a6643e7399ac8a0e81d06a3ee6d6571b33ab)

Coverage Report

Created: 2022-03-09 17:30

/Users/deen/code/yugabyte-db/src/yb/util/yb_pg_errcodes.h
Line
Count
Source
1
// Copyright (c) YugaByte, Inc.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License"), you may not use this file except
4
// in compliance with the License.  You may obtain a copy of the License at
5
//
6
// http://www.apache.org/licenses/LICENSE-2.0
7
//
8
// Unless required by applicable law or agreed to in writing, software distributed under the License
9
// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
10
// or implied.  See the License for the specific language governing permissions and limitations
11
// under the License.
12
//
13
// Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
14
// Portions Copyright (c) 1994, Regents of the University of California
15
16
#ifndef YB_UTIL_YB_PG_ERRCODES_H
17
#define YB_UTIL_YB_PG_ERRCODES_H
18
19
#include <string>
20
21
/* These macro definitions have been taken from elog.h */
22
#define YB_PGSIXBIT(ch) (((ch) - '0') & 0x3F)
23
24
#define YB_PG_MAKE_SQLSTATE(ch1, ch2, ch3, ch4, ch5) \
25
    (YB_PGSIXBIT(ch1) + (YB_PGSIXBIT(ch2) << 6) + (YB_PGSIXBIT(ch3) << 12) + \
26
    (YB_PGSIXBIT(ch4) << 18) + (YB_PGSIXBIT(ch5) << 24))
27
28
/* The actual PostgreSQL error codes have been taken from the generated errcodes.h file. */
29
namespace yb {
30
31
enum class YBPgErrorCode : uint32_t {
32
  /* Class 00 - Successful Completion */
33
  YB_PG_SUCCESSFUL_COMPLETION = YB_PG_MAKE_SQLSTATE('0', '0', '0', '0', '0'),
34
35
  /* Class 01 - Warning */
36
  YB_PG_WARNING = YB_PG_MAKE_SQLSTATE('0', '1', '0', '0', '0'),
37
  YB_PG_WARNING_DYNAMIC_RESULT_SETS_RETURNED = YB_PG_MAKE_SQLSTATE('0', '1', '0', '0', 'C'),
38
  YB_PG_WARNING_IMPLICIT_ZERO_BIT_PADDING = YB_PG_MAKE_SQLSTATE('0', '1', '0', '0', '8'),
39
  YB_PG_WARNING_NULL_VALUE_ELIMINATED_IN_SET_FUNCTION =
40
      YB_PG_MAKE_SQLSTATE('0', '1', '0', '0', '3'),
41
  YB_PG_WARNING_PRIVILEGE_NOT_GRANTED = YB_PG_MAKE_SQLSTATE('0', '1', '0', '0', '7'),
42
  YB_PG_WARNING_PRIVILEGE_NOT_REVOKED = YB_PG_MAKE_SQLSTATE('0', '1', '0', '0', '6'),
43
  YB_PG_WARNING_STRING_DATA_RIGHT_TRUNCATION = YB_PG_MAKE_SQLSTATE('0', '1', '0', '0', '4'),
44
  YB_PG_WARNING_DEPRECATED_FEATURE = YB_PG_MAKE_SQLSTATE('0', '1', 'P', '0', '1'),
45
46
  /* Class 02 - No Data (this is also a warning class per the SQL standard) */
47
  YB_PG_NO_DATA = YB_PG_MAKE_SQLSTATE('0', '2', '0', '0', '0'),
48
  YB_PG_NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED = YB_PG_MAKE_SQLSTATE('0', '2', '0', '0', '1'),
49
50
  /* Class 03 - SQL Statement Not Yet Complete */
51
  YB_PG_SQL_STATEMENT_NOT_YET_COMPLETE = YB_PG_MAKE_SQLSTATE('0', '3', '0', '0', '0'),
52
53
  /* Class 08 - Connection Exception */
54
  YB_PG_CONNECTION_EXCEPTION = YB_PG_MAKE_SQLSTATE('0', '8', '0', '0', '0'),
55
  YB_PG_CONNECTION_DOES_NOT_EXIST = YB_PG_MAKE_SQLSTATE('0', '8', '0', '0', '3'),
56
  YB_PG_CONNECTION_FAILURE = YB_PG_MAKE_SQLSTATE('0', '8', '0', '0', '6'),
57
  YB_PG_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION =
58
      YB_PG_MAKE_SQLSTATE('0', '8', '0', '0', '1'),
59
  YB_PG_SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION =
60
      YB_PG_MAKE_SQLSTATE('0', '8', '0', '0', '4'),
61
  YB_PG_TRANSACTION_RESOLUTION_UNKNOWN = YB_PG_MAKE_SQLSTATE('0', '8', '0', '0', '7'),
62
  YB_PG_PROTOCOL_VIOLATION = YB_PG_MAKE_SQLSTATE('0', '8', 'P', '0', '1'),
63
64
  /* Class 09 - Triggered Action Exception */
65
  YB_PG_TRIGGERED_ACTION_EXCEPTION = YB_PG_MAKE_SQLSTATE('0', '9', '0', '0', '0'),
66
67
  /* Class 0A - Feature Not Supported */
68
  YB_PG_FEATURE_NOT_SUPPORTED = YB_PG_MAKE_SQLSTATE('0', 'A', '0', '0', '0'),
69
70
  /* Class 0B - Invalid Transaction Initiation */
71
  YB_PG_INVALID_TRANSACTION_INITIATION = YB_PG_MAKE_SQLSTATE('0', 'B', '0', '0', '0'),
72
73
  /* Class 0F - Locator Exception */
74
  YB_PG_LOCATOR_EXCEPTION = YB_PG_MAKE_SQLSTATE('0', 'F', '0', '0', '0'),
75
  YB_PG_L_E_INVALID_SPECIFICATION = YB_PG_MAKE_SQLSTATE('0', 'F', '0', '0', '1'),
76
77
  /* Class 0L - Invalid Grantor */
78
  YB_PG_INVALID_GRANTOR = YB_PG_MAKE_SQLSTATE('0', 'L', '0', '0', '0'),
79
  YB_PG_INVALID_GRANT_OPERATION = YB_PG_MAKE_SQLSTATE('0', 'L', 'P', '0', '1'),
80
81
  /* Class 0P - Invalid Role Specification */
82
  YB_PG_INVALID_ROLE_SPECIFICATION = YB_PG_MAKE_SQLSTATE('0', 'P', '0', '0', '0'),
83
84
  /* Class 0Z - Diagnostics Exception */
85
  YB_PG_DIAGNOSTICS_EXCEPTION = YB_PG_MAKE_SQLSTATE('0', 'Z', '0', '0', '0'),
86
  YB_PG_STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER =
87
      YB_PG_MAKE_SQLSTATE('0', 'Z', '0', '0', '2'),
88
89
  /* Class 20 - Case Not Found */
90
  YB_PG_CASE_NOT_FOUND = YB_PG_MAKE_SQLSTATE('2', '0', '0', '0', '0'),
91
92
  /* Class 21 - Cardinality Violation */
93
  YB_PG_CARDINALITY_VIOLATION = YB_PG_MAKE_SQLSTATE('2', '1', '0', '0', '0'),
94
95
  /* Class 22 - Data Exception */
96
  YB_PG_DATA_EXCEPTION = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', '0'),
97
  YB_PG_ARRAY_ELEMENT_ERROR = YB_PG_MAKE_SQLSTATE('2', '2', '0', '2', 'E'),
98
  YB_PG_ARRAY_SUBSCRIPT_ERROR = YB_PG_MAKE_SQLSTATE('2', '2', '0', '2', 'E'),
99
  YB_PG_CHARACTER_NOT_IN_REPERTOIRE = YB_PG_MAKE_SQLSTATE('2', '2', '0', '2', '1'),
100
  YB_PG_DATETIME_FIELD_OVERFLOW = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', '8'),
101
  YB_PG_DATETIME_VALUE_OUT_OF_RANGE = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', '8'),
102
  YB_PG_DIVISION_BY_ZERO = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', '2'),
103
  YB_PG_ERROR_IN_ASSIGNMENT = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', '5'),
104
  YB_PG_ESCAPE_CHARACTER_CONFLICT = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', 'B'),
105
  YB_PG_INDICATOR_OVERFLOW = YB_PG_MAKE_SQLSTATE('2', '2', '0', '2', '2'),
106
  YB_PG_INTERVAL_FIELD_OVERFLOW = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', '5'),
107
  YB_PG_INVALID_ARGUMENT_FOR_LOG = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', 'E'),
108
  YB_PG_INVALID_ARGUMENT_FOR_NTILE = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', '4'),
109
  YB_PG_INVALID_ARGUMENT_FOR_NTH_VALUE = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', '6'),
110
  YB_PG_INVALID_ARGUMENT_FOR_POWER_FUNCTION = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', 'F'),
111
  YB_PG_INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', 'G'),
112
  YB_PG_INVALID_CHARACTER_VALUE_FOR_CAST = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', '8'),
113
  YB_PG_INVALID_DATETIME_FORMAT = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', '7'),
114
  YB_PG_INVALID_ESCAPE_CHARACTER = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', '9'),
115
  YB_PG_INVALID_ESCAPE_OCTET = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', 'D'),
116
  YB_PG_INVALID_ESCAPE_SEQUENCE = YB_PG_MAKE_SQLSTATE('2', '2', '0', '2', '5'),
117
  YB_PG_NONSTANDARD_USE_OF_ESCAPE_CHARACTER = YB_PG_MAKE_SQLSTATE('2', '2', 'P', '0', '6'),
118
  YB_PG_INVALID_INDICATOR_PARAMETER_VALUE = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', '0'),
119
  YB_PG_INVALID_PARAMETER_VALUE = YB_PG_MAKE_SQLSTATE('2', '2', '0', '2', '3'),
120
  YB_PG_INVALID_PRECEDING_OR_FOLLOWING_SIZE = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', '3'),
121
  YB_PG_INVALID_REGULAR_EXPRESSION = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', 'B'),
122
  YB_PG_INVALID_ROW_COUNT_IN_LIMIT_CLAUSE = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', 'W'),
123
  YB_PG_INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', 'X'),
124
  YB_PG_INVALID_TABLESAMPLE_ARGUMENT = YB_PG_MAKE_SQLSTATE('2', '2', '0', '2', 'H'),
125
  YB_PG_INVALID_TABLESAMPLE_REPEAT = YB_PG_MAKE_SQLSTATE('2', '2', '0', '2', 'G'),
126
  YB_PG_INVALID_TIME_ZONE_DISPLACEMENT_VALUE = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', '9'),
127
  YB_PG_INVALID_USE_OF_ESCAPE_CHARACTER = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', 'C'),
128
  YB_PG_MOST_SPECIFIC_TYPE_MISMATCH = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', 'G'),
129
  YB_PG_NULL_VALUE_NOT_ALLOWED = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', '4'),
130
  YB_PG_NULL_VALUE_NO_INDICATOR_PARAMETER = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', '2'),
131
  YB_PG_NUMERIC_VALUE_OUT_OF_RANGE = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', '3'),
132
  YB_PG_SEQUENCE_GENERATOR_LIMIT_EXCEEDED = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', 'H'),
133
  YB_PG_STRING_DATA_LENGTH_MISMATCH = YB_PG_MAKE_SQLSTATE('2', '2', '0', '2', '6'),
134
  YB_PG_STRING_DATA_RIGHT_TRUNCATION = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', '1'),
135
  YB_PG_SUBSTRING_ERROR = YB_PG_MAKE_SQLSTATE('2', '2', '0', '1', '1'),
136
  YB_PG_TRIM_ERROR = YB_PG_MAKE_SQLSTATE('2', '2', '0', '2', '7'),
137
  YB_PG_UNTERMINATED_C_STRING = YB_PG_MAKE_SQLSTATE('2', '2', '0', '2', '4'),
138
  YB_PG_ZERO_LENGTH_CHARACTER_STRING = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', 'F'),
139
  YB_PG_FLOATING_POINT_EXCEPTION = YB_PG_MAKE_SQLSTATE('2', '2', 'P', '0', '1'),
140
  YB_PG_INVALID_TEXT_REPRESENTATION = YB_PG_MAKE_SQLSTATE('2', '2', 'P', '0', '2'),
141
  YB_PG_INVALID_BINARY_REPRESENTATION = YB_PG_MAKE_SQLSTATE('2', '2', 'P', '0', '3'),
142
  YB_PG_BAD_COPY_FILE_FORMAT = YB_PG_MAKE_SQLSTATE('2', '2', 'P', '0', '4'),
143
  YB_PG_UNTRANSLATABLE_CHARACTER = YB_PG_MAKE_SQLSTATE('2', '2', 'P', '0', '5'),
144
  YB_PG_NOT_AN_XML_DOCUMENT = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', 'L'),
145
  YB_PG_INVALID_XML_DOCUMENT = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', 'M'),
146
  YB_PG_INVALID_XML_CONTENT = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', 'N'),
147
  YB_PG_INVALID_XML_COMMENT = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', 'S'),
148
  YB_PG_INVALID_XML_PROCESSING_INSTRUCTION = YB_PG_MAKE_SQLSTATE('2', '2', '0', '0', 'T'),
149
150
  /* Class 23 - Integrity Constraint Violation */
151
  YB_PG_INTEGRITY_CONSTRAINT_VIOLATION = YB_PG_MAKE_SQLSTATE('2', '3', '0', '0', '0'),
152
  YB_PG_RESTRICT_VIOLATION = YB_PG_MAKE_SQLSTATE('2', '3', '0', '0', '1'),
153
  YB_PG_NOT_NULL_VIOLATION = YB_PG_MAKE_SQLSTATE('2', '3', '5', '0', '2'),
154
  YB_PG_FOREIGN_KEY_VIOLATION = YB_PG_MAKE_SQLSTATE('2', '3', '5', '0', '3'),
155
  YB_PG_UNIQUE_VIOLATION = YB_PG_MAKE_SQLSTATE('2', '3', '5', '0', '5'),
156
  YB_PG_CHECK_VIOLATION = YB_PG_MAKE_SQLSTATE('2', '3', '5', '1', '4'),
157
  YB_PG_EXCLUSION_VIOLATION = YB_PG_MAKE_SQLSTATE('2', '3', 'P', '0', '1'),
158
159
  /* Class 24 - Invalid Cursor State */
160
  YB_PG_INVALID_CURSOR_STATE = YB_PG_MAKE_SQLSTATE('2', '4', '0', '0', '0'),
161
162
  /* Class 25 - Invalid Transaction State */
163
  YB_PG_INVALID_TRANSACTION_STATE = YB_PG_MAKE_SQLSTATE('2', '5', '0', '0', '0'),
164
  YB_PG_ACTIVE_SQL_TRANSACTION = YB_PG_MAKE_SQLSTATE('2', '5', '0', '0', '1'),
165
  YB_PG_BRANCH_TRANSACTION_ALREADY_ACTIVE = YB_PG_MAKE_SQLSTATE('2', '5', '0', '0', '2'),
166
  YB_PG_HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL =
167
      YB_PG_MAKE_SQLSTATE('2', '5', '0', '0', '8'),
168
  YB_PG_INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION =
169
      YB_PG_MAKE_SQLSTATE('2', '5', '0', '0', '3'),
170
  YB_PG_INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION =
171
      YB_PG_MAKE_SQLSTATE('2', '5', '0', '0', '4'),
172
  YB_PG_NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION =
173
      YB_PG_MAKE_SQLSTATE('2', '5', '0', '0', '5'),
174
  YB_PG_READ_ONLY_SQL_TRANSACTION = YB_PG_MAKE_SQLSTATE('2', '5', '0', '0', '6'),
175
  YB_PG_SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED =
176
      YB_PG_MAKE_SQLSTATE('2', '5', '0', '0', '7'),
177
  YB_PG_NO_ACTIVE_SQL_TRANSACTION = YB_PG_MAKE_SQLSTATE('2', '5', 'P', '0', '1'),
178
  YB_PG_IN_FAILED_SQL_TRANSACTION = YB_PG_MAKE_SQLSTATE('2', '5', 'P', '0', '2'),
179
  YB_PG_IDLE_IN_TRANSACTION_SESSION_TIMEOUT = YB_PG_MAKE_SQLSTATE('2', '5', 'P', '0', '3'),
180
181
  /* Class 26 - Invalid SQL Statement Name */
182
  YB_PG_INVALID_SQL_STATEMENT_NAME = YB_PG_MAKE_SQLSTATE('2', '6', '0', '0', '0'),
183
184
  /* Class 27 - Triggered Data Change Violation */
185
  YB_PG_TRIGGERED_DATA_CHANGE_VIOLATION = YB_PG_MAKE_SQLSTATE('2', '7', '0', '0', '0'),
186
187
  /* Class 28 - Invalid Authorization Specification */
188
  YB_PG_INVALID_AUTHORIZATION_SPECIFICATION = YB_PG_MAKE_SQLSTATE('2', '8', '0', '0', '0'),
189
  YB_PG_INVALID_PASSWORD = YB_PG_MAKE_SQLSTATE('2', '8', 'P', '0', '1'),
190
191
  /* Class 2B - Dependent Privilege Descriptors Still Exist */
192
  YB_PG_DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST =
193
      YB_PG_MAKE_SQLSTATE('2', 'B', '0', '0', '0'),
194
  YB_PG_DEPENDENT_OBJECTS_STILL_EXIST = YB_PG_MAKE_SQLSTATE('2', 'B', 'P', '0', '1'),
195
196
  /* Class 2D - Invalid Transaction Termination */
197
  YB_PG_INVALID_TRANSACTION_TERMINATION = YB_PG_MAKE_SQLSTATE('2', 'D', '0', '0', '0'),
198
199
  /* Class 2F - SQL Routine Exception */
200
  YB_PG_SQL_ROUTINE_EXCEPTION = YB_PG_MAKE_SQLSTATE('2', 'F', '0', '0', '0'),
201
  YB_PG_S_R_E_FUNCTION_EXECUTED_NO_RETURN_STATEMENT =
202
      YB_PG_MAKE_SQLSTATE('2', 'F', '0', '0', '5'),
203
  YB_PG_S_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED = YB_PG_MAKE_SQLSTATE('2', 'F', '0', '0', '2'),
204
  YB_PG_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED = YB_PG_MAKE_SQLSTATE('2', 'F', '0', '0', '3'),
205
  YB_PG_S_R_E_READING_SQL_DATA_NOT_PERMITTED = YB_PG_MAKE_SQLSTATE('2', 'F', '0', '0', '4'),
206
207
  /* Class 34 - Invalid Cursor Name */
208
  YB_PG_INVALID_CURSOR_NAME = YB_PG_MAKE_SQLSTATE('3', '4', '0', '0', '0'),
209
210
  /* Class 38 - External Routine Exception */
211
  YB_PG_EXTERNAL_ROUTINE_EXCEPTION = YB_PG_MAKE_SQLSTATE('3', '8', '0', '0', '0'),
212
  YB_PG_E_R_E_CONTAINING_SQL_NOT_PERMITTED = YB_PG_MAKE_SQLSTATE('3', '8', '0', '0', '1'),
213
  YB_PG_E_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED = YB_PG_MAKE_SQLSTATE('3', '8', '0', '0', '2'),
214
  YB_PG_E_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED = YB_PG_MAKE_SQLSTATE('3', '8', '0', '0', '3'),
215
  YB_PG_E_R_E_READING_SQL_DATA_NOT_PERMITTED = YB_PG_MAKE_SQLSTATE('3', '8', '0', '0', '4'),
216
217
  /* Class 39 - External Routine Invocation Exception */
218
  YB_PG_EXTERNAL_ROUTINE_INVOCATION_EXCEPTION = YB_PG_MAKE_SQLSTATE('3', '9', '0', '0', '0'),
219
  YB_PG_E_R_I_E_INVALID_SQLSTATE_RETURNED = YB_PG_MAKE_SQLSTATE('3', '9', '0', '0', '1'),
220
  YB_PG_E_R_I_E_NULL_VALUE_NOT_ALLOWED = YB_PG_MAKE_SQLSTATE('3', '9', '0', '0', '4'),
221
  YB_PG_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED = YB_PG_MAKE_SQLSTATE('3', '9', 'P', '0', '1'),
222
  YB_PG_E_R_I_E_SRF_PROTOCOL_VIOLATED = YB_PG_MAKE_SQLSTATE('3', '9', 'P', '0', '2'),
223
  YB_PG_E_R_I_E_EVENT_TRIGGER_PROTOCOL_VIOLATED = YB_PG_MAKE_SQLSTATE('3', '9', 'P', '0', '3'),
224
225
  /* Class 3B - Savepoint Exception */
226
  YB_PG_SAVEPOINT_EXCEPTION = YB_PG_MAKE_SQLSTATE('3', 'B', '0', '0', '0'),
227
  YB_PG_S_E_INVALID_SPECIFICATION = YB_PG_MAKE_SQLSTATE('3', 'B', '0', '0', '1'),
228
229
  /* Class 3D - Invalid Catalog Name */
230
  YB_PG_INVALID_CATALOG_NAME = YB_PG_MAKE_SQLSTATE('3', 'D', '0', '0', '0'),
231
232
  /* Class 3F - Invalid Schema Name */
233
  YB_PG_INVALID_SCHEMA_NAME = YB_PG_MAKE_SQLSTATE('3', 'F', '0', '0', '0'),
234
235
  /* Class 40 - Transaction Rollback */
236
  YB_PG_TRANSACTION_ROLLBACK = YB_PG_MAKE_SQLSTATE('4', '0', '0', '0', '0'),
237
  YB_PG_T_R_INTEGRITY_CONSTRAINT_VIOLATION = YB_PG_MAKE_SQLSTATE('4', '0', '0', '0', '2'),
238
  YB_PG_T_R_SERIALIZATION_FAILURE = YB_PG_MAKE_SQLSTATE('4', '0', '0', '0', '1'),
239
  YB_PG_T_R_STATEMENT_COMPLETION_UNKNOWN = YB_PG_MAKE_SQLSTATE('4', '0', '0', '0', '3'),
240
  YB_PG_T_R_DEADLOCK_DETECTED = YB_PG_MAKE_SQLSTATE('4', '0', 'P', '0', '1'),
241
242
  /* Class 42 - Syntax Error or Access Rule Violation */
243
  YB_PG_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION = YB_PG_MAKE_SQLSTATE('4', '2', '0', '0', '0'),
244
  YB_PG_SYNTAX_ERROR = YB_PG_MAKE_SQLSTATE('4', '2', '6', '0', '1'),
245
  YB_PG_INSUFFICIENT_PRIVILEGE = YB_PG_MAKE_SQLSTATE('4', '2', '5', '0', '1'),
246
  YB_PG_CANNOT_COERCE = YB_PG_MAKE_SQLSTATE('4', '2', '8', '4', '6'),
247
  YB_PG_GROUPING_ERROR = YB_PG_MAKE_SQLSTATE('4', '2', '8', '0', '3'),
248
  YB_PG_WINDOWING_ERROR = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '2', '0'),
249
  YB_PG_INVALID_RECURSION = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '1', '9'),
250
  YB_PG_INVALID_FOREIGN_KEY = YB_PG_MAKE_SQLSTATE('4', '2', '8', '3', '0'),
251
  YB_PG_INVALID_NAME = YB_PG_MAKE_SQLSTATE('4', '2', '6', '0', '2'),
252
  YB_PG_NAME_TOO_LONG = YB_PG_MAKE_SQLSTATE('4', '2', '6', '2', '2'),
253
  YB_PG_RESERVED_NAME = YB_PG_MAKE_SQLSTATE('4', '2', '9', '3', '9'),
254
  YB_PG_DATATYPE_MISMATCH = YB_PG_MAKE_SQLSTATE('4', '2', '8', '0', '4'),
255
  YB_PG_INDETERMINATE_DATATYPE = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '1', '8'),
256
  YB_PG_COLLATION_MISMATCH = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '2', '1'),
257
  YB_PG_INDETERMINATE_COLLATION = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '2', '2'),
258
  YB_PG_WRONG_OBJECT_TYPE = YB_PG_MAKE_SQLSTATE('4', '2', '8', '0', '9'),
259
  YB_PG_GENERATED_ALWAYS = YB_PG_MAKE_SQLSTATE('4', '2', '8', 'C', '9'),
260
  YB_PG_UNDEFINED_COLUMN = YB_PG_MAKE_SQLSTATE('4', '2', '7', '0', '3'),
261
  YB_PG_UNDEFINED_CURSOR = YB_PG_MAKE_SQLSTATE('3', '4', '0', '0', '0'),
262
  YB_PG_UNDEFINED_DATABASE = YB_PG_MAKE_SQLSTATE('3', 'D', '0', '0', '0'),
263
  YB_PG_UNDEFINED_FUNCTION = YB_PG_MAKE_SQLSTATE('4', '2', '8', '8', '3'),
264
  YB_PG_UNDEFINED_PSTATEMENT = YB_PG_MAKE_SQLSTATE('2', '6', '0', '0', '0'),
265
  YB_PG_UNDEFINED_SCHEMA = YB_PG_MAKE_SQLSTATE('3', 'F', '0', '0', '0'),
266
  YB_PG_UNDEFINED_TABLE = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '0', '1'),
267
  YB_PG_UNDEFINED_PARAMETER = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '0', '2'),
268
  YB_PG_UNDEFINED_OBJECT = YB_PG_MAKE_SQLSTATE('4', '2', '7', '0', '4'),
269
  YB_PG_DUPLICATE_COLUMN = YB_PG_MAKE_SQLSTATE('4', '2', '7', '0', '1'),
270
  YB_PG_DUPLICATE_CURSOR = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '0', '3'),
271
  YB_PG_DUPLICATE_DATABASE = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '0', '4'),
272
  YB_PG_DUPLICATE_FUNCTION = YB_PG_MAKE_SQLSTATE('4', '2', '7', '2', '3'),
273
  YB_PG_DUPLICATE_PSTATEMENT = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '0', '5'),
274
  YB_PG_DUPLICATE_SCHEMA = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '0', '6'),
275
  YB_PG_DUPLICATE_TABLE = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '0', '7'),
276
  YB_PG_DUPLICATE_ALIAS = YB_PG_MAKE_SQLSTATE('4', '2', '7', '1', '2'),
277
  YB_PG_DUPLICATE_OBJECT = YB_PG_MAKE_SQLSTATE('4', '2', '7', '1', '0'),
278
  YB_PG_AMBIGUOUS_COLUMN = YB_PG_MAKE_SQLSTATE('4', '2', '7', '0', '2'),
279
  YB_PG_AMBIGUOUS_FUNCTION = YB_PG_MAKE_SQLSTATE('4', '2', '7', '2', '5'),
280
  YB_PG_AMBIGUOUS_PARAMETER = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '0', '8'),
281
  YB_PG_AMBIGUOUS_ALIAS = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '0', '9'),
282
  YB_PG_INVALID_COLUMN_REFERENCE = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '1', '0'),
283
  YB_PG_INVALID_COLUMN_DEFINITION = YB_PG_MAKE_SQLSTATE('4', '2', '6', '1', '1'),
284
  YB_PG_INVALID_CURSOR_DEFINITION = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '1', '1'),
285
  YB_PG_INVALID_DATABASE_DEFINITION = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '1', '2'),
286
  YB_PG_INVALID_FUNCTION_DEFINITION = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '1', '3'),
287
  YB_PG_INVALID_PSTATEMENT_DEFINITION = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '1', '4'),
288
  YB_PG_INVALID_SCHEMA_DEFINITION = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '1', '5'),
289
  YB_PG_INVALID_TABLE_DEFINITION = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '1', '6'),
290
  YB_PG_INVALID_OBJECT_DEFINITION = YB_PG_MAKE_SQLSTATE('4', '2', 'P', '1', '7'),
291
292
  /* Class 44 - WITH CHECK OPTION Violation */
293
  YB_PG_WITH_CHECK_OPTION_VIOLATION = YB_PG_MAKE_SQLSTATE('4', '4', '0', '0', '0'),
294
295
  /* Class 53 - Insufficient Resources */
296
  YB_PG_INSUFFICIENT_RESOURCES = YB_PG_MAKE_SQLSTATE('5', '3', '0', '0', '0'),
297
  YB_PG_DISK_FULL = YB_PG_MAKE_SQLSTATE('5', '3', '1', '0', '0'),
298
  YB_PG_OUT_OF_MEMORY = YB_PG_MAKE_SQLSTATE('5', '3', '2', '0', '0'),
299
  YB_PG_TOO_MANY_CONNECTIONS = YB_PG_MAKE_SQLSTATE('5', '3', '3', '0', '0'),
300
  YB_PG_CONFIGURATION_LIMIT_EXCEEDED = YB_PG_MAKE_SQLSTATE('5', '3', '4', '0', '0'),
301
302
  /* Class 54 - Program Limit Exceeded */
303
  YB_PG_PROGRAM_LIMIT_EXCEEDED = YB_PG_MAKE_SQLSTATE('5', '4', '0', '0', '0'),
304
  YB_PG_STATEMENT_TOO_COMPLEX = YB_PG_MAKE_SQLSTATE('5', '4', '0', '0', '1'),
305
  YB_PG_TOO_MANY_COLUMNS = YB_PG_MAKE_SQLSTATE('5', '4', '0', '1', '1'),
306
  YB_PG_TOO_MANY_ARGUMENTS = YB_PG_MAKE_SQLSTATE('5', '4', '0', '2', '3'),
307
308
  /* Class 55 - Object Not In Prerequisite State */
309
  YB_PG_OBJECT_NOT_IN_PREREQUISITE_STATE = YB_PG_MAKE_SQLSTATE('5', '5', '0', '0', '0'),
310
  YB_PG_OBJECT_IN_USE = YB_PG_MAKE_SQLSTATE('5', '5', '0', '0', '6'),
311
  YB_PG_CANT_CHANGE_RUNTIME_PARAM = YB_PG_MAKE_SQLSTATE('5', '5', 'P', '0', '2'),
312
  YB_PG_LOCK_NOT_AVAILABLE = YB_PG_MAKE_SQLSTATE('5', '5', 'P', '0', '3'),
313
314
  /* Class 57 - Operator Intervention */
315
  YB_PG_OPERATOR_INTERVENTION = YB_PG_MAKE_SQLSTATE('5', '7', '0', '0', '0'),
316
  YB_PG_QUERY_CANCELED = YB_PG_MAKE_SQLSTATE('5', '7', '0', '1', '4'),
317
  YB_PG_ADMIN_SHUTDOWN = YB_PG_MAKE_SQLSTATE('5', '7', 'P', '0', '1'),
318
  YB_PG_CRASH_SHUTDOWN = YB_PG_MAKE_SQLSTATE('5', '7', 'P', '0', '2'),
319
  YB_PG_CANNOT_CONNECT_NOW = YB_PG_MAKE_SQLSTATE('5', '7', 'P', '0', '3'),
320
  YB_PG_DATABASE_DROPPED = YB_PG_MAKE_SQLSTATE('5', '7', 'P', '0', '4'),
321
322
  /* Class 58 - System Error (errors external to PostgreSQL itself) */
323
  YB_PG_SYSTEM_ERROR = YB_PG_MAKE_SQLSTATE('5', '8', '0', '0', '0'),
324
  YB_PG_IO_ERROR = YB_PG_MAKE_SQLSTATE('5', '8', '0', '3', '0'),
325
  YB_PG_UNDEFINED_FILE = YB_PG_MAKE_SQLSTATE('5', '8', 'P', '0', '1'),
326
  YB_PG_DUPLICATE_FILE = YB_PG_MAKE_SQLSTATE('5', '8', 'P', '0', '2'),
327
328
  /* Class 72 - Snapshot Failure */
329
  YB_PG_SNAPSHOT_TOO_OLD = YB_PG_MAKE_SQLSTATE('7', '2', '0', '0', '0'),
330
331
  /* Class F0 - Configuration File Error */
332
  YB_PG_CONFIG_FILE_ERROR = YB_PG_MAKE_SQLSTATE('F', '0', '0', '0', '0'),
333
  YB_PG_LOCK_FILE_EXISTS = YB_PG_MAKE_SQLSTATE('F', '0', '0', '0', '1'),
334
335
  /* Class HV - Foreign Data Wrapper Error (SQL/MED) */
336
  YB_PG_FDW_ERROR = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', '0'),
337
  YB_PG_FDW_COLUMN_NAME_NOT_FOUND = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', '5'),
338
  YB_PG_FDW_DYNAMIC_PARAMETER_VALUE_NEEDED = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', '2'),
339
  YB_PG_FDW_FUNCTION_SEQUENCE_ERROR = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '1', '0'),
340
  YB_PG_FDW_INCONSISTENT_DESCRIPTOR_INFORMATION = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '2', '1'),
341
  YB_PG_FDW_INVALID_ATTRIBUTE_VALUE = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '2', '4'),
342
  YB_PG_FDW_INVALID_COLUMN_NAME = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', '7'),
343
  YB_PG_FDW_INVALID_COLUMN_NUMBER = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', '8'),
344
  YB_PG_FDW_INVALID_DATA_TYPE = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', '4'),
345
  YB_PG_FDW_INVALID_DATA_TYPE_DESCRIPTORS = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', '6'),
346
  YB_PG_FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '9', '1'),
347
  YB_PG_FDW_INVALID_HANDLE = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', 'B'),
348
  YB_PG_FDW_INVALID_OPTION_INDEX = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', 'C'),
349
  YB_PG_FDW_INVALID_OPTION_NAME = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', 'D'),
350
  YB_PG_FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '9', '0'),
351
  YB_PG_FDW_INVALID_STRING_FORMAT = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', 'A'),
352
  YB_PG_FDW_INVALID_USE_OF_NULL_POINTER = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', '9'),
353
  YB_PG_FDW_TOO_MANY_HANDLES = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '1', '4'),
354
  YB_PG_FDW_OUT_OF_MEMORY = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', '1'),
355
  YB_PG_FDW_NO_SCHEMAS = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', 'P'),
356
  YB_PG_FDW_OPTION_NAME_NOT_FOUND = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', 'J'),
357
  YB_PG_FDW_REPLY_HANDLE = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', 'K'),
358
  YB_PG_FDW_SCHEMA_NOT_FOUND = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', 'Q'),
359
  YB_PG_FDW_TABLE_NOT_FOUND = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', 'R'),
360
  YB_PG_FDW_UNABLE_TO_CREATE_EXECUTION = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', 'L'),
361
  YB_PG_FDW_UNABLE_TO_CREATE_REPLY = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', 'M'),
362
  YB_PG_FDW_UNABLE_TO_ESTABLISH_CONNECTION = YB_PG_MAKE_SQLSTATE('H', 'V', '0', '0', 'N'),
363
364
  /* Class P0 - PL/pgSQL Error */
365
  YB_PG_PLPGSQL_ERROR = YB_PG_MAKE_SQLSTATE('P', '0', '0', '0', '0'),
366
  YB_PG_RAISE_EXCEPTION = YB_PG_MAKE_SQLSTATE('P', '0', '0', '0', '1'),
367
  YB_PG_NO_DATA_FOUND = YB_PG_MAKE_SQLSTATE('P', '0', '0', '0', '2'),
368
  YB_PG_TOO_MANY_ROWS = YB_PG_MAKE_SQLSTATE('P', '0', '0', '0', '3'),
369
  YB_PG_ASSERT_FAILURE = YB_PG_MAKE_SQLSTATE('P', '0', '0', '0', '4'),
370
371
  /* Class XX - Internal Error */
372
  YB_PG_INTERNAL_ERROR = YB_PG_MAKE_SQLSTATE('X', 'X', '0', '0', '0'),
373
  YB_PG_DATA_CORRUPTED = YB_PG_MAKE_SQLSTATE('X', 'X', '0', '0', '1'),
374
  YB_PG_INDEX_CORRUPTED = YB_PG_MAKE_SQLSTATE('X', 'X', '0', '0', '2'),
375
};
376
377
#undef YB_PG_MAKE_SQLSTATE
378
#undef YB_PGSIXBIT
379
380
323k
inline std::string ToString(YBPgErrorCode code) {
381
323k
  std::string result;
382
323k
  result.resize(5);
383
323k
  uint32_t u32_code = static_cast<uint32_t>(code);
384
1.93M
  for (int i = 0; i < 5; ++i) {
385
1.61M
    result[i] = '0' + ((u32_code >> (i * 6)) & 0x3f);
386
1.61M
  }
387
323k
  return result;
388
323k
}
389
390
}  // namespace yb
391
392
#endif  // YB_UTIL_YB_PG_ERRCODES_H