8000 Update Error Code · sunaoka/php-postgresql-errors@80aa182 · GitHub
[go: up one dir, main page]

Skip to content

Commit 80aa182

Browse files
authored
Update Error Code
1 parent 9ccc3a8 commit 80aa182

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed

src/PostgresError.php

+85
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44

55
class PostgresError
66
{
7+
// Class 00 - Successful Completion
78
const SUCCESSFUL_COMPLETION = '00000';
9+
10+
// Class 01 - Warning
811
const WARNING = '01000';
912
const DYNAMIC_RESULT_SETS_RETURNED = '0100C';
1013
const IMPLICIT_ZERO_BIT_PADDING = '01008';
@@ -13,28 +16,54 @@ class PostgresError
1316
const PRIVILEGE_NOT_REVOKED = '01006';
1417
const STRING_DATA_RIGHT_TRUNCATION = '01004';
1518
const DEPRECATED_FEATURE = '01P01';
19+
20+
// Class 02 - No Data (this is also a warning class per the SQL standard)
1621
const NO_DATA = '02000';
1722
const NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED = '02001';
23+
24+
// Class 03 - SQL Statement Not Yet Complete
1825
const SQL_STATEMENT_NOT_YET_COMPLETE = '03000';
26+
27+
// Class 08 - Connection Exception
1928
const CONNECTION_EXCEPTION = '08000';
2029
const CONNECTION_DOES_NOT_EXIST = '08003';
2130
const CONNECTION_FAILURE = '08006';
2231
const SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION = '08001';
2332
const SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION = '08004';
2433
const TRANSACTION_RESOLUTION_UNKNOWN = '08007';
2534
const PROTOCOL_VIOLATION = '08P01';
35+
36+
// Class 09 - Triggered Action Exception
2637
const TRIGGERED_ACTION_EXCEPTION = '09000';
38+
39+
// Class 0A - Feature Not Supported
2740
const FEATURE_NOT_SUPPORTED = '0A000';
41+
42+
// Class 0B - Invalid Transaction Initiation
2843
const INVALID_TRANSACTION_INITIATION = '0B000';
44+
45+
// Class 0F - Locator Exception
2946
const LOCATOR_EXCEPTION = '0F000';
3047
const INVALID_LOCATOR_SPECIFICATION = '0F001';
48+
49+
// Class 0L - Invalid Grantor
3150
const INVALID_GRANTOR = '0L000';
3251
const INVALID_GRANT_OPERATION = '0LP01';
52+
53+
// Class 0P - Invalid Role Specification
3354
const INVALID_ROLE_SPECIFICATION = '0P000';
55+
56+
// Class 0Z - Diagnostics Exception
3457
const DIAGNOSTICS_EXCEPTION = '0Z000';
3558
const STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER = '0Z002';
59+
60+
// Class 20 - Case Not Found
3661
const CASE_NOT_FOUND = '20000';
62+
63+
// Class 21 - Cardinality Violation
3764
const CARDINALITY_VIOLATION = '21000';
65+
66+
// Class 22 - Data Exception
3867
const DATA_EXCEPTION = '22000';
3968
const ARRAY_SUBSCRIPT_ERROR = '2202E';
4069
const CHARACTER_NOT_IN_REPERTOIRE = '22021';
@@ -102,14 +131,20 @@ class PostgresError
102131
const TOO_MANY_JSON_ARRAY_ELEMENTS = '2203D';
103132
const TOO_MANY_JSON_OBJECT_MEMBERS = '2203E';
104133
const SQL_JSON_SCALAR_REQUIRED = '2203F';
134+
135+
// Class 23 - Integrity Constraint Violation
105136
const INTEGRITY_CONSTRAINT_VIOLATION = '23000';
106137
const RESTRICT_VIOLATION = '23001';
107138
const NOT_NULL_VIOLATION = '23502';
108139
const FOREIGN_KEY_VIOLATION = '23503';
109140
const UNIQUE_VIOLATION = '23505';
110141
const CHECK_VIOLATION = '23514';
111142
const EXCLUSION_VIOLATION = '23P01';
143+
144+
// Class 24 - Invalid Cursor State
112145
const INVALID_CURSOR_STATE = '24000';
146+
147+
// Class 25 - Invalid Transaction State
113148
const INVALID_TRANSACTION_STATE = '25000';
114149
const ACTIVE_SQL_TRANSACTION = '25001';
115150
const BRANCH_TRANSACTION_ALREADY_ACTIVE = '25002';
@@ -122,39 +157,67 @@ class PostgresError
122157
const NO_ACTIVE_SQL_TRANSACTION = '25P01';
123158
const IN_FAILED_SQL_TRANSACTION = '25P02';
124159
const IDLE_IN_TRANSACTION_SESSION_TIMEOUT = '25P03';
160+
161+
// Class 26 - Invalid SQL Statement Name
125162
const INVALID_SQL_STATEMENT_NAME = '26000';
163+
164+
// Class 27 - Triggered Data Change Violation
126165
const TRIGGERED_DATA_CHANGE_VIOLATION = '27000';
166+
167+
// Class 28 - Invalid Authorization Specification
127168
const INVALID_AUTHORIZATION_SPECIFICATION = '28000';
128169
const INVALID_PASSWORD = '28P01';
170+
171+
// Class 2B - Dependent Privilege Descriptors Still Exist
129172
const DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST = '2B000';
130173
const DEPENDENT_OBJECTS_STILL_EXIST = '2BP01';
174+
175+
// Class 2D - Invalid Transaction Termination
131176
const INVALID_TRANSACTION_TERMINATION = '2D000';
177+
178+
// Class 2F - SQL Routine Exception
132179
const SQL_ROUTINE_EXCEPTION = '2F000';
133180
const FUNCTION_EXECUTED_NO_RETURN_STATEMENT = '2F005';
134181
const MODIFYING_SQL_DATA_NOT_PERMITTED = '2F002';
135182
const PROHIBITED_SQL_STATEMENT_ATTEMPTED = '2F003';
136183
const READING_SQL_DATA_NOT_PERMITTED = '2F004';
184+
185+
// Class 34 - Invalid Cursor Name
137186
const INVALID_CURSOR_NAME = '34000';
187+
188+
// Class 38 - External Routine Exception
138189
const EXTERNAL_ROUTINE_EXCEPTION = '38000';
139190
const CONTAINING_SQL_NOT_PERMITTED = '38001';
140191
const MODIFYING_SQL_DATA_NOT_PERMITTED_EXCEPTION = '38002';
141192
const PROHIBITED_SQL_STATEMENT_ATTEMPTED_EXCEPTION = '38003';
142193
const READING_SQL_DATA_NOT_PERMITTED_EXCEPTION = '38004';
194+
195+
// Class 39 - External Routine Invocation Exception
143196
const EXTERNAL_ROUTINE_INVOCATION_EXCEPTION = '39000';
144197
const INVALID_SQLSTATE_RETURNED = '39001';
145198
const NULL_VALUE_NOT_ALLOWED_EXCEPTION = '39004';
146199
const TRIGGER_PROTOCOL_VIOLATED = '39P01';
147200
const SRF_PROTOCOL_VIOLATED = '39P02';
148201
const EVENT_TRIGGER_PROTOCOL_VIOLATED = '39P03';
202+
203+
// Class 3B - Savepoint Exception
149204
const SAVEPOINT_EXCEPTION = '3B000';
150205
const INVALID_SAVEPOINT_SPECIFICATION = '3B001';
206+
207+
// Class 3D - Invalid Catalog Name
151208
const INVALID_CATALOG_NAME = '3D000';
209+
210+
// Class 3F - Invalid Schema Name
152211
const INVALID_SCHEMA_NAME = '3F000';
212+
213+
// Class 40 - Transaction Rollback
153214
const TRANSACTION_ROLLBACK = '40000';
154215
const TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION = '40002';
155216
const SERIALIZATION_FAILURE = '40001';
156217
const STATEMENT_COMPLETION_UNKNOWN = '40003';
157218
const DEADLOCK_DETECTED = '40P01';
219+
220+
// Class 42 - Syntax Error or Access Rule Violation
158221
const SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION = '42000';
159222
const SYNTAX_ERROR = '42601';
160223
const INSUFFICIENT_PRIVILEGE = '42501';
@@ -199,35 +262,53 @@ class PostgresError
199262
const INVALID_SCHEMA_DEFINITION = '42P15';
200263
const INVALID_TABLE_DEFINITION = '42P16';
201264
const INVALID_OBJECT_DEFINITION = '42P17';
265+
266+
// Class 44 - WITH CHECK OPTION Violation
202267
const WITH_CHECK_OPTION_VIOLATION = '44000';
268+
269+
// Class 53 - Insufficient Resources
203270
const INSUFFICIENT_RESOURCES = '53000';
204271
const DISK_FULL = '53100';
205272
const OUT_OF_MEMORY = '53200';
206273
const TOO_MANY_CONNECTIONS = '53300';
207274
const CONFIGURATION_LIMIT_EXCEEDED = '53400';
275+
276+
// Class 54 - Program Limit Exceeded
208277
const PROGRAM_LIMIT_EXCEEDED = '54000';
209278
const STATEMENT_TOO_COMPLEX = '54001';
210279
const TOO_MANY_COLUMNS = '54011';
211280
const TOO_MANY_ARGUMENTS = '54023';
281+
282+
// Class 55 - Object Not In Prerequisite State
212283
const OBJECT_NOT_IN_PREREQUISITE_STATE = '55000';
213284
const OBJECT_IN_USE = '55006';
214285
const CANT_CHANGE_RUNTIME_PARAM = '55P02';
215286
const LOCK_NOT_AVAILABLE = '55P03';
216287
const UNSAFE_NEW_ENUM_VALUE_USAGE = '55P04';
288+
289+
// Class 57 - Operator Intervention
217290
const OPERATOR_INTERVENTION = '57000';
218291
const QUERY_CANCELED = '57014';
219292
const ADMIN_SHUTDOWN = '57P01';
220293
const CRASH_SHUTDOWN = '57P02';
221294
const CANNOT_CONNECT_NOW = '57P03';
222295
const DATABASE_DROPPED = '57P04';
223296
const IDLE_SESSION_TIMEOUT = '57P05';
297+
298+
// Class 58 - System Error (errors external to PostgreSQL itself)
224299
const SYSTEM_ERROR = '58000';
225300
const IO_ERROR = '58030';
226301
const UNDEFINED_FILE = '58P01';
227302
const DUPLICATE_FILE = '58P02';
303+
304+
// Class 72 - Snapshot Failure
228305
const SNAPSHOT_TOO_OLD = '72000';
306+
307+
// Class F0 - Configuration File Error
229308
const CONFIG_FILE_ERROR = 'F0000';
230309
const LOCK_FILE_EXISTS = 'F0001';
310+
311+
// Class HV - Foreign Data Wrapper Error (SQL/MED)
231312
const FDW_ERROR = 'HV000';
232313
const FDW_COLUMN_NAME_NOT_FOUND = 'HV005';
233314
const FDW_DYNAMIC_PARAMETER_VALUE_NEEDED = 'HV002';
@@ -255,11 +336,15 @@ class PostgresError
255336
const FDW_UNABLE_TO_CREATE_EXECUTION = 'HV00L';
256337
const FDW_UNABLE_TO_CREATE_REPLY = 'HV00M';
257338
const FDW_UNABLE_TO_ESTABLISH_CONNECTION = 'HV00N';
339+
340+
// Class P0 - PL/pgSQL Error
258341
const PLPGSQL_ERROR = 'P0000';
259342
const RAISE_EXCEPTION = 'P0001';
260343
const NO_DATA_FOUND = 'P0002';
261344
const TOO_MANY_ROWS = 'P0003';
262345
const ASSERT_FAILURE = 'P0004';
346+
347+
// Class XX - Internal Error
263348
const INTERNAL_ERROR = 'XX000';
264349
const DATA_CORRUPTED = 'XX001';
265350
const INDEX_CORRUPTED = 'XX002';

0 commit comments

Comments
 (0)
0