4
4
5
5
class PostgresError
6
6
{
7
+ // Class 00 - Successful Completion
7
8
const SUCCESSFUL_COMPLETION = '00000 ' ;
9
+
10
+ // Class 01 - Warning
8
11
const WARNING = '01000 ' ;
9
12
const DYNAMIC_RESULT_SETS_RETURNED = '0100C ' ;
10
13
const IMPLICIT_ZERO_BIT_PADDING = '01008 ' ;
@@ -13,28 +16,54 @@ class PostgresError
13
16
const PRIVILEGE_NOT_REVOKED = '01006 ' ;
14
17
const STRING_DATA_RIGHT_TRUNCATION = '01004 ' ;
15
18
const DEPRECATED_FEATURE = '01P01 ' ;
19
+
20
+ // Class 02 - No Data (this is also a warning class per the SQL standard)
16
21
const NO_DATA = '02000 ' ;
17
22
const NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED = '02001 ' ;
23
+
24
+ // Class 03 - SQL Statement Not Yet Complete
18
25
const SQL_STATEMENT_NOT_YET_COMPLETE = '03000 ' ;
26
+
27
+ // Class 08 - Connection Exception
19
28
const CONNECTION_EXCEPTION = '08000 ' ;
20
29
const CONNECTION_DOES_NOT_EXIST = '08003 ' ;
21
30
const CONNECTION_FAILURE = '08006 ' ;
22
31
const SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION = '08001 ' ;
23
32
const SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION = '08004 ' ;
24
33
const TRANSACTION_RESOLUTION_UNKNOWN = '08007 ' ;
25
34
const PROTOCOL_VIOLATION = '08P01 ' ;
35
+
36
+ // Class 09 - Triggered Action Exception
26
37
const TRIGGERED_ACTION_EXCEPTION = '09000 ' ;
38
+
39
+ // Class 0A - Feature Not Supported
27
40
const FEATURE_NOT_SUPPORTED = '0A000 ' ;
41
+
42
+ // Class 0B - Invalid Transaction Initiation
28
43
const INVALID_TRANSACTION_INITIATION = '0B000 ';
44
+
45
+ // Class 0F - Locator Exception
29
46
const LOCATOR_EXCEPTION = '0F000 ' ;
30
47
const INVALID_LOCATOR_SPECIFICATION = '0F001 ' ;
48
+
49
+ // Class 0L - Invalid Grantor
31
50
const INVALID_GRANTOR = '0L000 ' ;
32
51
const INVALID_GRANT_OPERATION = '0LP01 ' ;
52
+
53
+ // Class 0P - Invalid Role Specification
33
54
const INVALID_ROLE_SPECIFICATION = '0P000 ' ;
55
+
56
+ // Class 0Z - Diagnostics Exception
34
57
const DIAGNOSTICS_EXCEPTION = '0Z000 ' ;
35
58
const STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER = '0Z002 ' ;
59
+
60
+ // Class 20 - Case Not Found
36
61
const CASE_NOT_FOUND = '20000 ' ;
62
+
63
+ // Class 21 - Cardinality Violation
37
64
const CARDINALITY_VIOLATION = '21000 ' ;
65
+
66
+ // Class 22 - Data Exception
38
67
const DATA_EXCEPTION = '22000 ' ;
39
68
const ARRAY_SUBSCRIPT_ERROR = '2202E ' ;
40
69
const CHARACTER_NOT_IN_REPERTOIRE = '22021 ' ;
@@ -102,14 +131,20 @@ class PostgresError
102
131
const TOO_MANY_JSON_ARRAY_ELEMENTS = '2203D ' ;
103
132
const TOO_MANY_JSON_OBJECT_MEMBERS = '2203E ' ;
104
133
const SQL_JSON_SCALAR_REQUIRED = '2203F ' ;
134
+
135
+ // Class 23 - Integrity Constraint Violation
105
136
const INTEGRITY_CONSTRAINT_VIOLATION = '23000 ' ;
106
137
const RESTRICT_VIOLATION = '23001 ' ;
107
138
const NOT_NULL_VIOLATION = '23502 ' ;
108
139
const FOREIGN_KEY_VIOLATION = '23503 ' ;
109
140
const UNIQUE_VIOLATION = '23505 ' ;
110
141
const CHECK_VIOLATION = '23514 ' ;
111
142
const EXCLUSION_VIOLATION = '23P01 ' ;
143
+
144
+ // Class 24 - Invalid Cursor State
112
145
const INVALID_CURSOR_STATE = '24000 ' ;
146
+
147
+ // Class 25 - Invalid Transaction State
113
148
const INVALID_TRANSACTION_STATE = '25000 ' ;
114
149
const ACTIVE_SQL_TRANSACTION = '25001 ' ;
115
150
const BRANCH_TRANSACTION_ALREADY_ACTIVE = '25002 ' ;
@@ -122,39 +157,67 @@ class PostgresError
122
157
const NO_ACTIVE_SQL_TRANSACTION = '25P01 ' ;
123
158
const IN_FAILED_SQL_TRANSACTION = '25P02 ' ;
124
159
const IDLE_IN_TRANSACTION_SESSION_TIMEOUT = '25P03 ' ;
160
+
161
+ // Class 26 - Invalid SQL Statement Name
125
162
const INVALID_SQL_STATEMENT_NAME = '26000 ' ;
163
+
164
+ // Class 27 - Triggered Data Change Violation
126
165
const TRIGGERED_DATA_CHANGE_VIOLATION = '27000 ' ;
166
+
167
+ // Class 28 - Invalid Authorization Specification
127
168
const INVALID_AUTHORIZATION_SPECIFICATION = '28000 ' ;
128
169
const INVALID_PASSWORD = '28P01 ' ;
170
+
171
+ // Class 2B - Dependent Privilege Descriptors Still Exist
129
172
const DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST = '2B000 ' ;
130
173
const DEPENDENT_OBJECTS_STILL_EXIST = '2BP01 ' ;
174
+
175
+ // Class 2D - Invalid Transaction Termination
131
176
const INVALID_TRANSACTION_TERMINATION = '2D000 ' ;
177
+
178
+ // Class 2F - SQL Routine Exception
132
179
const SQL_ROUTINE_EXCEPTION = '2F000 ' ;
133
180
const FUNCTION_EXECUTED_NO_RETURN_STATEMENT = '2F005 ' ;
134
181
const MODIFYING_SQL_DATA_NOT_PERMITTED = '2F002 ' ;
135
182
const PROHIBITED_SQL_STATEMENT_ATTEMPTED = '2F003 ' ;
136
183
const READING_SQL_DATA_NOT_PERMITTED = '2F004 ' ;
184
+
185
+ // Class 34 - Invalid Cursor Name
137
186<
F438
/code>
const INVALID_CURSOR_NAME = '34000 ' ;
187
+
188
+ // Class 38 - External Routine Exception
138
189
const EXTERNAL_ROUTINE_EXCEPTION = '38000 ' ;
139
190
const CONTAINING_SQL_NOT_PERMITTED = '38001 ' ;
140
191
const MODIFYING_SQL_DATA_NOT_PERMITTED_EXCEPTION = '38002 ' ;
141
192
const PROHIBITED_SQL_STATEMENT_ATTEMPTED_EXCEPTION = '38003 ' ;
142
193
const READING_SQL_DATA_NOT_PERMITTED_EXCEPTION = '38004 ' ;
194
+
195
+ // Class 39 - External Routine Invocation Exception
143
196
const EXTERNAL_ROUTINE_INVOCATION_EXCEPTION = '39000 ' ;
144
197
const INVALID_SQLSTATE_RETURNED = '39001 ' ;
145
198
const NULL_VALUE_NOT_ALLOWED_EXCEPTION = '39004 ' ;
146
199
const TRIGGER_PROTOCOL_VIOLATED = '39P01 ' ;
147
200
const SRF_PROTOCOL_VIOLATED = '39P02 ' ;
148
201
const EVENT_TRIGGER_PROTOCOL_VIOLATED = '39P03 ' ;
202
+
203
+ // Class 3B - Savepoint Exception
149
204
const SAVEPOINT_EXCEPTION = '3B000 ' ;
150
205
const INVALID_SAVEPOINT_SPECIFICATION = '3B001 ' ;
206
+
207
+ // Class 3D - Invalid Catalog Name
151
208
const INVALID_CATALOG_NAME = '3D000 ' ;
209
+
210
+ // Class 3F - Invalid Schema Name
152
211
const INVALID_SCHEMA_NAME = '3F000 ' ;
212
+
213
+ // Class 40 - Transaction Rollback
153
214
const TRANSACTION_ROLLBACK = '40000 ' ;
154
215
const TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION = '40002 ' ;
155
216
const SERIALIZATION_FAILURE = '40001 ' ;
156
217
const STATEMENT_COMPLETION_UNKNOWN = '40003 ' ;
157
218
const DEADLOCK_DETECTED = '40P01 ' ;
219
+
220
+ // Class 42 - Syntax Error or Access Rule Violation
158
221
const SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION = '42000 ' ;
159
222
const SYNTAX_ERROR = '42601 ' ;
160
223
const INSUFFICIENT_PRIVILEGE = '42501 ' ;
@@ -199,35 +262,53 @@ class PostgresError
199
262
const INVALID_SCHEMA_DEFINITION = '42P15 ' ;
200
263
const INVALID_TABLE_DEFINITION = '42P16 ' ;
201
264
const INVALID_OBJECT_DEFINITION = '42P17 ' ;
265
+
266
+ // Class 44 - WITH CHECK OPTION Violation
202
267
const WITH_CHECK_OPTION_VIOLATION = '44000 ' ;
268
+
269
+ // Class 53 - Insufficient Resources
203
270
const INSUFFICIENT_RESOURCES = '53000 ' ;
204
271
const DISK_FULL = '53100 ' ;
205
272
const OUT_OF_MEMORY = '53200 ' ;
206
273
const TOO_MANY_CONNECTIONS = '53300 ' ;
207
274
const CONFIGURATION_LIMIT_EXCEEDED = '53400 ' ;
275
+
276
+ // Class 54 - Program Limit Exceeded
208
277
const PROGRAM_LIMIT_EXCEEDED = '54000 ' ;
209
278
const STATEMENT_TOO_COMPLEX = '54001 ' ;
210
279
const TOO_MANY_COLUMNS = '54011 ' ;
211
280
const TOO_MANY_ARGUMENTS = '54023 ' ;
281
+
282
+ // Class 55 - Object Not In Prerequisite State
212
283
const OBJECT_NOT_IN_PREREQUISITE_STATE = '55000 ' ;
213
284
const OBJECT_IN_USE = '55006 ' ;
214
285
const CANT_CHANGE_RUNTIME_PARAM = '55P02 ' ;
215
286
const LOCK_NOT_AVAILABLE = '55P03 ' ;
216
287
const UNSAFE_NEW_ENUM_VALUE_USAGE = '55P04 ' ;
288
+
289
+ // Class 57 - Operator Intervention
217
290
const OPERATOR_INTERVENTION = '57000 ' ;
218
291
const QUERY_CANCELED = '57014 ' ;
219
292
const ADMIN_SHUTDOWN = '57P01 ' ;
220
293
const CRASH_SHUTDOWN = '57P02 ' ;
221
294
const CANNOT_CONNECT_NOW = '57P03 ' ;
222
295
const DATABASE_DROPPED = '57P04 ' ;
223
296
const IDLE_SESSION_TIMEOUT = '57P05 ' ;
297
+
298
+ // Class 58 - System Error (errors external to PostgreSQL itself)
224
299
const SYSTEM_ERROR = '58000 ' ;
225
300
const IO_ERROR = '58030 ' ;
226
301
const UNDEFINED_FILE = '58P01 ' ;
227
302
const DUPLICATE_FILE = '58P02 ' ;
303
+
304
+ // Class 72 - Snapshot Failure
228
305
const SNAPSHOT_TOO_OLD = '72000 ' ;
306
+
307
+ // Class F0 - Configuration File Error
229
308
const CONFIG_FILE_ERROR = 'F0000 ' ;
230
309
const LOCK_FILE_EXISTS = 'F0001 ' ;
310
+
311
+ // Class HV - Foreign Data Wrapper Error (SQL/MED)
231
312
const FDW_ERROR = 'HV000 ' ;
232
313
const FDW_COLUMN_NAME_NOT_FOUND = 'HV005 ' ;
233
314
const FDW_DYNAMIC_PARAMETER_VALUE_NEEDED = 'HV002 ' ;
@@ -255,11 +336,15 @@ class PostgresError
255
336
const FDW_UNABLE_TO_CREATE_EXECUTION = 'HV00L ' ;
256
337
const FDW_UNABLE_TO_CREATE_REPLY = 'HV00M ' ;
257
338
const FDW_UNABLE_TO_ESTABLISH_CONNECTION = 'HV00N ' ;
339
+
340
+ // Class P0 - PL/pgSQL Error
258
341
const PLPGSQL_ERROR = 'P0000 ' ;
259
342
const RAISE_EXCEPTION = 'P0001 ' ;
260
343
const NO_DATA_FOUND = 'P0002 ' ;
261
344
const TOO_MANY_ROWS = 'P0003 ' ;
262
345
const ASSERT_FAILURE = 'P0004 ' ;
346
+
347
+ // Class XX - Internal Error
263
348
const INTERNAL_ERROR = 'XX000 ' ;
264
349
const DATA_CORRUPTED = 'XX001 ' ;
265
350
const INDEX_CORRUPTED = 'XX002 ' ;
0 commit comments