~vcs-imports/mammoth-replicator/trunk

« back to all changes in this revision

Viewing changes to src/include/utils/errcodes.h

  • Committer: alvherre
  • Date: 2005-12-16 21:24:52 UTC
  • Revision ID: svn-v4:db760fc0-0f08-0410-9d63-cc6633f64896:trunk:1
Initial import of the REL8_0_3 sources from the Pgsql CVS repository.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*-------------------------------------------------------------------------
 
2
 *
 
3
 * errcodes.h
 
4
 *        POSTGRES error codes
 
5
 *
 
6
 * The error code list is kept in its own source file for possible use by
 
7
 * automatic tools.  Each error code is identified by a five-character string
 
8
 * following the SQLSTATE conventions.  The exact representation of the
 
9
 * string is determined by the MAKE_SQLSTATE() macro, which is not defined
 
10
 * in this file; it can be defined by the caller for special purposes.
 
11
 *
 
12
 * Copyright (c) 2003-2005, PostgreSQL Global Development Group
 
13
 *
 
14
 * $PostgreSQL: pgsql/src/include/utils/errcodes.h,v 1.17 2005-01-01 20:44:30 tgl Exp $
 
15
 *
 
16
 *-------------------------------------------------------------------------
 
17
 */
 
18
 
 
19
/* there is deliberately not an #ifndef ERRCODES_H here */
 
20
 
 
21
 
 
22
/*
 
23
 * SQLSTATE codes for errors.
 
24
 *
 
25
 * The SQL99 code set is rather impoverished, especially in the area of
 
26
 * syntactical and semantic errors.  We have borrowed codes from IBM's DB2
 
27
 * and invented our own codes to develop a useful code set.
 
28
 *
 
29
 * When adding a new code, make sure it is placed in the most appropriate
 
30
 * class (the first two characters of the code value identify the class).
 
31
 * The listing is organized by class to make this prominent.
 
32
 *
 
33
 * The generic '000' subclass code should be used for an error only
 
34
 * when there is not a more-specific subclass code defined.
 
35
 *
 
36
 * The SQL spec requires that all the elements of a SQLSTATE code be
 
37
 * either digits or upper-case ASCII characters.
 
38
 *
 
39
 * Classes that begin with 0-4 or A-H are defined by the
 
40
 * standard. Within such a class, subclass values defined by the
 
41
 * standard must begin with 0-4 or A-H. To define a new error code,
 
42
 * ensure that it is either in an "implementation-defined class" (it
 
43
 * begins with 5-9 or I-Z), or its subclass falls outside the range of
 
44
 * error codes that could be present in future versions of the
 
45
 * standard (i.e. the subclass value begins with 5-9 or I-Z).
 
46
 *
 
47
 * The convention is that new error codes defined by PostgreSQL in a
 
48
 * class defined by the standard have a subclass value that begins
 
49
 * with 'P'. In addition, error codes defined by PostgreSQL clients
 
50
 * (such as ecpg) have a class value that begins with 'Y'.
 
51
 */
 
52
 
 
53
/* Class 00 - Successful Completion */
 
54
#define ERRCODE_SUCCESSFUL_COMPLETION           MAKE_SQLSTATE('0','0', '0','0','0')
 
55
 
 
56
/* Class 01 - Warning */
 
57
/* (do not use this class for failure conditions!) */
 
58
#define ERRCODE_WARNING                                         MAKE_SQLSTATE('0','1', '0','0','0')
 
59
#define ERRCODE_WARNING_DYNAMIC_RESULT_SETS_RETURNED            MAKE_SQLSTATE('0','1', '0','0','C')
 
60
#define ERRCODE_WARNING_IMPLICIT_ZERO_BIT_PADDING       MAKE_SQLSTATE('0','1', '0','0','8')
 
61
#define ERRCODE_WARNING_NULL_VALUE_ELIMINATED_IN_SET_FUNCTION   MAKE_SQLSTATE('0','1', '0','0','3')
 
62
#define ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED           MAKE_SQLSTATE('0','1', '0','0','7')
 
63
#define ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED           MAKE_SQLSTATE('0','1', '0','0','6')
 
64
#define ERRCODE_WARNING_STRING_DATA_RIGHT_TRUNCATION    MAKE_SQLSTATE('0','1', '0','0','4')
 
65
#define ERRCODE_WARNING_DEPRECATED_FEATURE      MAKE_SQLSTATE('0','1', 'P','0','1')
 
66
 
 
67
/* Class 02 - No Data --- this is also a warning class per SQL99 */
 
68
/* (do not use this class for failure conditions!) */
 
69
#define ERRCODE_NO_DATA                                         MAKE_SQLSTATE('0','2', '0','0','0')
 
70
#define ERRCODE_NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED      MAKE_SQLSTATE('0','2', '0','0','1')
 
71
 
 
72
/* Class 03 - SQL Statement Not Yet Complete */
 
73
#define ERRCODE_SQL_STATEMENT_NOT_YET_COMPLETE          MAKE_SQLSTATE('0','3', '0','0','0')
 
74
 
 
75
/* Class 08 - Connection Exception */
 
76
#define ERRCODE_CONNECTION_EXCEPTION            MAKE_SQLSTATE('0','8', '0','0','0')
 
77
#define ERRCODE_CONNECTION_DOES_NOT_EXIST       MAKE_SQLSTATE('0','8', '0','0','3')
 
78
#define ERRCODE_CONNECTION_FAILURE                      MAKE_SQLSTATE('0','8', '0','0','6')
 
79
#define ERRCODE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION             MAKE_SQLSTATE('0','8', '0','0','1')
 
80
#define ERRCODE_SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION       MAKE_SQLSTATE('0','8', '0','0','4')
 
81
#define ERRCODE_TRANSACTION_RESOLUTION_UNKNOWN          MAKE_SQLSTATE('0','8', '0','0','7')
 
82
#define ERRCODE_PROTOCOL_VIOLATION                      MAKE_SQLSTATE('0','8', 'P','0','1')
 
83
 
 
84
/* Class 09 - Triggered Action Exception */
 
85
#define ERRCODE_TRIGGERED_ACTION_EXCEPTION      MAKE_SQLSTATE('0','9', '0','0','0')
 
86
 
 
87
/* Class 0A - Feature Not Supported */
 
88
#define ERRCODE_FEATURE_NOT_SUPPORTED           MAKE_SQLSTATE('0','A', '0','0','0')
 
89
 
 
90
/* Class 0B - Invalid Transaction Initiation */
 
91
#define ERRCODE_INVALID_TRANSACTION_INITIATION          MAKE_SQLSTATE('0','B', '0','0','0')
 
92
 
 
93
/* Class 0F - Locator Exception */
 
94
#define ERRCODE_LOCATOR_EXCEPTION                       MAKE_SQLSTATE('0','F', '0','0','0')
 
95
#define ERRCODE_L_E_INVALID_SPECIFICATION       MAKE_SQLSTATE('0','F', '0','0','1')
 
96
 
 
97
/* Class 0L - Invalid Grantor */
 
98
#define ERRCODE_INVALID_GRANTOR                         MAKE_SQLSTATE('0','L', '0','0','0')
 
99
#define ERRCODE_INVALID_GRANT_OPERATION         MAKE_SQLSTATE('0','L', 'P','0','1')
 
100
 
 
101
/* Class 0P - Invalid Role Specification */
 
102
#define ERRCODE_INVALID_ROLE_SPECIFICATION      MAKE_SQLSTATE('0','P', '0','0','0')
 
103
 
 
104
/* Class 21 - Cardinality Violation */
 
105
/* (this means something returned the wrong number of rows) */
 
106
#define ERRCODE_CARDINALITY_VIOLATION           MAKE_SQLSTATE('2','1', '0','0','0')
 
107
 
 
108
/* Class 22 - Data Exception */
 
109
#define ERRCODE_DATA_EXCEPTION                          MAKE_SQLSTATE('2','2', '0','0','0')
 
110
#define ERRCODE_ARRAY_ELEMENT_ERROR                     MAKE_SQLSTATE('2','2', '0','2','E')
 
111
/* SQL99's actual definition of "array element error" is subscript error */
 
112
#define ERRCODE_ARRAY_SUBSCRIPT_ERROR           ERRCODE_ARRAY_ELEMENT_ERROR
 
113
#define ERRCODE_CHARACTER_NOT_IN_REPERTOIRE MAKE_SQLSTATE('2','2', '0','2','1')
 
114
#define ERRCODE_DATETIME_FIELD_OVERFLOW         MAKE_SQLSTATE('2','2', '0','0','8')
 
115
#define ERRCODE_DATETIME_VALUE_OUT_OF_RANGE ERRCODE_DATETIME_FIELD_OVERFLOW
 
116
#define ERRCODE_DIVISION_BY_ZERO                        MAKE_SQLSTATE('2','2', '0','1','2')
 
117
#define ERRCODE_ERROR_IN_ASSIGNMENT                     MAKE_SQLSTATE('2','2', '0','0','5')
 
118
#define ERRCODE_ESCAPE_CHARACTER_CONFLICT       MAKE_SQLSTATE('2','2', '0','0','B')
 
119
#define ERRCODE_INDICATOR_OVERFLOW                      MAKE_SQLSTATE('2','2', '0','2','2')
 
120
#define ERRCODE_INTERVAL_FIELD_OVERFLOW         MAKE_SQLSTATE('2','2', '0','1','5')
 
121
#define ERRCODE_INVALID_ARGUMENT_FOR_LOG        MAKE_SQLSTATE('2','2', '0','1','E')
 
122
#define ERRCODE_INVALID_ARGUMENT_FOR_POWER_FUNCTION MAKE_SQLSTATE('2','2', '0', '1', 'F')
 
123
#define ERRCODE_INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION      MAKE_SQLSTATE('2','2', '0', '1', 'G')
 
124
#define ERRCODE_INVALID_CHARACTER_VALUE_FOR_CAST                MAKE_SQLSTATE('2','2', '0','1','8')
 
125
#define ERRCODE_INVALID_DATETIME_FORMAT         MAKE_SQLSTATE('2','2', '0','0','7')
 
126
#define ERRCODE_INVALID_ESCAPE_CHARACTER        MAKE_SQLSTATE('2','2', '0','1','9')
 
127
#define ERRCODE_INVALID_ESCAPE_OCTET            MAKE_SQLSTATE('2','2', '0','0','D')
 
128
#define ERRCODE_INVALID_ESCAPE_SEQUENCE         MAKE_SQLSTATE('2','2', '0','2','5')
 
129
#define ERRCODE_INVALID_INDICATOR_PARAMETER_VALUE               MAKE_SQLSTATE('2','2', '0','1','0')
 
130
#define ERRCODE_INVALID_LIMIT_VALUE                     MAKE_SQLSTATE('2','2', '0','2','0')
 
131
#define ERRCODE_INVALID_PARAMETER_VALUE         MAKE_SQLSTATE('2','2', '0','2','3')
 
132
#define ERRCODE_INVALID_REGULAR_EXPRESSION      MAKE_SQLSTATE('2','2', '0','1','B')
 
133
#define ERRCODE_INVALID_TIME_ZONE_DISPLACEMENT_VALUE    MAKE_SQLSTATE('2','2', '0','0','9')
 
134
#define ERRCODE_INVALID_USE_OF_ESCAPE_CHARACTER         MAKE_SQLSTATE('2','2', '0','0','C')
 
135
#define ERRCODE_MOST_SPECIFIC_TYPE_MISMATCH MAKE_SQLSTATE('2','2', '0','0','G')
 
136
#define ERRCODE_NULL_VALUE_NOT_ALLOWED          MAKE_SQLSTATE('2','2', '0','0','4')
 
137
#define ERRCODE_NULL_VALUE_NO_INDICATOR_PARAMETER       MAKE_SQLSTATE('2','2', '0','0','2')
 
138
#define ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE      MAKE_SQLSTATE('2','2', '0','0','3')
 
139
#define ERRCODE_STRING_DATA_LENGTH_MISMATCH MAKE_SQLSTATE('2','2', '0','2','6')
 
140
#define ERRCODE_STRING_DATA_RIGHT_TRUNCATION            MAKE_SQLSTATE('2','2', '0','0','1')
 
141
#define ERRCODE_SUBSTRING_ERROR                         MAKE_SQLSTATE('2','2', '0','1','1')
 
142
#define ERRCODE_TRIM_ERROR                                      MAKE_SQLSTATE('2','2', '0','2','7')
 
143
#define ERRCODE_UNTERMINATED_C_STRING           MAKE_SQLSTATE('2','2', '0','2','4')
 
144
#define ERRCODE_ZERO_LENGTH_CHARACTER_STRING            MAKE_SQLSTATE('2','2', '0','0','F')
 
145
#define ERRCODE_FLOATING_POINT_EXCEPTION        MAKE_SQLSTATE('2','2', 'P','0','1')
 
146
#define ERRCODE_INVALID_TEXT_REPRESENTATION MAKE_SQLSTATE('2','2', 'P','0','2')
 
147
#define ERRCODE_INVALID_BINARY_REPRESENTATION   MAKE_SQLSTATE('2','2', 'P','0','3')
 
148
#define ERRCODE_BAD_COPY_FILE_FORMAT            MAKE_SQLSTATE('2','2', 'P','0','4')
 
149
#define ERRCODE_UNTRANSLATABLE_CHARACTER        MAKE_SQLSTATE('2','2', 'P','0','5')
 
150
 
 
151
/* Class 23 - Integrity Constraint Violation */
 
152
#define ERRCODE_INTEGRITY_CONSTRAINT_VIOLATION          MAKE_SQLSTATE('2','3', '0','0','0')
 
153
#define ERRCODE_RESTRICT_VIOLATION                      MAKE_SQLSTATE('2','3', '0','0','1')
 
154
#define ERRCODE_NOT_NULL_VIOLATION                      MAKE_SQLSTATE('2','3', '5','0','2')
 
155
#define ERRCODE_FOREIGN_KEY_VIOLATION           MAKE_SQLSTATE('2','3', '5','0','3')
 
156
#define ERRCODE_UNIQUE_VIOLATION                        MAKE_SQLSTATE('2','3', '5','0','5')
 
157
#define ERRCODE_CHECK_VIOLATION                         MAKE_SQLSTATE('2','3', '5','1','4')
 
158
 
 
159
/* Class 24 - Invalid Cursor State */
 
160
#define ERRCODE_INVALID_CURSOR_STATE            MAKE_SQLSTATE('2','4', '0','0','0')
 
161
 
 
162
/* Class 25 - Invalid Transaction State */
 
163
#define ERRCODE_INVALID_TRANSACTION_STATE       MAKE_SQLSTATE('2','5', '0','0','0')
 
164
#define ERRCODE_ACTIVE_SQL_TRANSACTION          MAKE_SQLSTATE('2','5', '0','0','1')
 
165
#define ERRCODE_BRANCH_TRANSACTION_ALREADY_ACTIVE       MAKE_SQLSTATE('2','5', '0','0','2')
 
166
#define ERRCODE_HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL       MAKE_SQLSTATE('2','5', '0','0','8')
 
167
#define ERRCODE_INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION        MAKE_SQLSTATE('2','5', '0','0','3')
 
168
#define ERRCODE_INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION    MAKE_SQLSTATE('2','5', '0','0','4')
 
169
#define ERRCODE_NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION        MAKE_SQLSTATE('2','5', '0','0','5')
 
170
#define ERRCODE_READ_ONLY_SQL_TRANSACTION       MAKE_SQLSTATE('2','5', '0','0','6')
 
171
#define ERRCODE_SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED  MAKE_SQLSTATE('2','5', '0','0','7')
 
172
#define ERRCODE_NO_ACTIVE_SQL_TRANSACTION       MAKE_SQLSTATE('2','5', 'P','0','1')
 
173
#define ERRCODE_IN_FAILED_SQL_TRANSACTION       MAKE_SQLSTATE('2','5', 'P','0','2')
 
174
 
 
175
/* Class 26 - Invalid SQL Statement Name */
 
176
/* (we take this to mean prepared statements) */
 
177
#define ERRCODE_INVALID_SQL_STATEMENT_NAME      MAKE_SQLSTATE('2','6', '0','0','0')
 
178
 
 
179
/* Class 27 - Triggered Data Change Violation */
 
180
#define ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION         MAKE_SQLSTATE('2','7', '0','0','0')
 
181
 
 
182
/* Class 28 - Invalid Authorization Specification */
 
183
#define ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION MAKE_SQLSTATE('2','8', '0','0','0')
 
184
 
 
185
/* Class 2B - Dependent Privilege Descriptors Still Exist */
 
186
#define ERRCODE_DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST             MAKE_SQLSTATE('2','B', '0','0','0')
 
187
#define ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST           MAKE_SQLSTATE('2','B', 'P','0','1')
 
188
 
 
189
/* Class 2D - Invalid Transaction Termination */
 
190
#define ERRCODE_INVALID_TRANSACTION_TERMINATION         MAKE_SQLSTATE('2','D', '0','0','0')
 
191
 
 
192
/* Class 2F - SQL Routine Exception */
 
193
#define ERRCODE_SQL_ROUTINE_EXCEPTION           MAKE_SQLSTATE('2','F', '0','0','0')
 
194
#define ERRCODE_S_R_E_FUNCTION_EXECUTED_NO_RETURN_STATEMENT MAKE_SQLSTATE('2','F', '0','0','5')
 
195
#define ERRCODE_S_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED          MAKE_SQLSTATE('2','F', '0','0','2')
 
196
#define ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED        MAKE_SQLSTATE('2','F', '0','0','3')
 
197
#define ERRCODE_S_R_E_READING_SQL_DATA_NOT_PERMITTED            MAKE_SQLSTATE('2','F', '0','0','4')
 
198
 
 
199
/* Class 34 - Invalid Cursor Name */
 
200
#define ERRCODE_INVALID_CURSOR_NAME                     MAKE_SQLSTATE('3','4', '0','0','0')
 
201
 
 
202
/* Class 38 - External Routine Exception */
 
203
#define ERRCODE_EXTERNAL_ROUTINE_EXCEPTION      MAKE_SQLSTATE('3','8', '0','0','0')
 
204
#define ERRCODE_E_R_E_CONTAINING_SQL_NOT_PERMITTED      MAKE_SQLSTATE('3','8', '0','0','1')
 
205
#define ERRCODE_E_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED  MAKE_SQLSTATE('3','8', '0','0','2')
 
206
#define ERRCODE_E_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED        MAKE_SQLSTATE('3','8', '0','0','3')
 
207
#define ERRCODE_E_R_E_READING_SQL_DATA_NOT_PERMITTED    MAKE_SQLSTATE('3','8', '0','0','4')
 
208
 
 
209
/* Class 39 - External Routine Invocation Exception */
 
210
#define ERRCODE_EXTERNAL_ROUTINE_INVOCATION_EXCEPTION   MAKE_SQLSTATE('3','9', '0','0','0')
 
211
#define ERRCODE_E_R_I_E_INVALID_SQLSTATE_RETURNED       MAKE_SQLSTATE('3','9', '0','0','1')
 
212
#define ERRCODE_E_R_I_E_NULL_VALUE_NOT_ALLOWED  MAKE_SQLSTATE('3','9', '0','0','4')
 
213
#define ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED       MAKE_SQLSTATE('3','9', 'P','0','1')
 
214
#define ERRCODE_E_R_I_E_SRF_PROTOCOL_VIOLATED   MAKE_SQLSTATE('3','9', 'P','0','2')
 
215
 
 
216
/* Class 3B - Savepoint Exception */
 
217
#define ERRCODE_SAVEPOINT_EXCEPTION                     MAKE_SQLSTATE('3','B', '0','0','0')
 
218
#define ERRCODE_S_E_INVALID_SPECIFICATION       MAKE_SQLSTATE('3','B', '0','0','1')
 
219
 
 
220
/* Class 3D - Invalid Catalog Name */
 
221
#define ERRCODE_INVALID_CATALOG_NAME            MAKE_SQLSTATE('3','D', '0','0','0')
 
222
 
 
223
/* Class 3F - Invalid Schema Name */
 
224
#define ERRCODE_INVALID_SCHEMA_NAME                     MAKE_SQLSTATE('3','F', '0','0','0')
 
225
 
 
226
/* Class 40 - Transaction Rollback */
 
227
#define ERRCODE_TRANSACTION_ROLLBACK            MAKE_SQLSTATE('4','0', '0','0','0')
 
228
#define ERRCODE_T_R_INTEGRITY_CONSTRAINT_VIOLATION      MAKE_SQLSTATE('4','0', '0','0','2')
 
229
#define ERRCODE_T_R_SERIALIZATION_FAILURE       MAKE_SQLSTATE('4','0', '0','0','1')
 
230
#define ERRCODE_T_R_STATEMENT_COMPLETION_UNKNOWN        MAKE_SQLSTATE('4','0', '0','0','3')
 
231
#define ERRCODE_T_R_DEADLOCK_DETECTED           MAKE_SQLSTATE('4','0', 'P','0','1')
 
232
 
 
233
/* Class 42 - Syntax Error or Access Rule Violation */
 
234
#define ERRCODE_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION           MAKE_SQLSTATE('4','2', '0','0','0')
 
235
/* never use the above; use one of these two if no specific code exists: */
 
236
#define ERRCODE_SYNTAX_ERROR                            MAKE_SQLSTATE('4','2', '6','0','1')
 
237
#define ERRCODE_INSUFFICIENT_PRIVILEGE          MAKE_SQLSTATE('4','2', '5','0','1')
 
238
#define ERRCODE_CANNOT_COERCE                           MAKE_SQLSTATE('4','2', '8','4','6')
 
239
#define ERRCODE_GROUPING_ERROR                          MAKE_SQLSTATE('4','2', '8','0','3')
 
240
#define ERRCODE_INVALID_FOREIGN_KEY                     MAKE_SQLSTATE('4','2', '8','3','0')
 
241
#define ERRCODE_INVALID_NAME                            MAKE_SQLSTATE('4','2', '6','0','2')
 
242
#define ERRCODE_NAME_TOO_LONG                           MAKE_SQLSTATE('4','2', '6','2','2')
 
243
#define ERRCODE_RESERVED_NAME                           MAKE_SQLSTATE('4','2', '9','3','9')
 
244
#define ERRCODE_DATATYPE_MISMATCH                       MAKE_SQLSTATE('4','2', '8','0','4')
 
245
#define ERRCODE_INDETERMINATE_DATATYPE          MAKE_SQLSTATE('4','2', 'P','1','8')
 
246
#define ERRCODE_WRONG_OBJECT_TYPE                       MAKE_SQLSTATE('4','2', '8','0','9')
 
247
/*
 
248
 * Note: for ERRCODE purposes, we divide namable objects into these categories:
 
249
 * databases, schemas, prepared statements, cursors, tables, columns,
 
250
 * functions (including operators), and all else (lumped as "objects").
 
251
 * (The first four categories are mandated by the existence of separate
 
252
 * SQLSTATE classes for them in the spec; in this file, however, we group
 
253
 * the ERRCODE names with all the rest under class 42.)  Parameters are
 
254
 * sort-of-named objects and get their own ERRCODE.
 
255
 *
 
256
 * The same breakdown is used for "duplicate" and "ambiguous" complaints,
 
257
 * as well as complaints associated with incorrect declarations.
 
258
 */
 
259
#define ERRCODE_UNDEFINED_COLUMN                        MAKE_SQLSTATE('4','2', '7','0','3')
 
260
#define ERRCODE_UNDEFINED_CURSOR                        ERRCODE_INVALID_CURSOR_NAME
 
261
#define ERRCODE_UNDEFINED_DATABASE                      ERRCODE_INVALID_CATALOG_NAME
 
262
#define ERRCODE_UNDEFINED_FUNCTION                      MAKE_SQLSTATE('4','2', '8','8','3')
 
263
#define ERRCODE_UNDEFINED_PSTATEMENT            ERRCODE_INVALID_SQL_STATEMENT_NAME
 
264
#define ERRCODE_UNDEFINED_SCHEMA                        ERRCODE_INVALID_SCHEMA_NAME
 
265
#define ERRCODE_UNDEFINED_TABLE                         MAKE_SQLSTATE('4','2', 'P','0','1')
 
266
#define ERRCODE_UNDEFINED_PARAMETER                     MAKE_SQLSTATE('4','2', 'P','0','2')
 
267
#define ERRCODE_UNDEFINED_OBJECT                        MAKE_SQLSTATE('4','2', '7','0','4')
 
268
#define ERRCODE_DUPLICATE_COLUMN                        MAKE_SQLSTATE('4','2', '7','0','1')
 
269
#define ERRCODE_DUPLICATE_CURSOR                        MAKE_SQLSTATE('4','2', 'P','0','3')
 
270
#define ERRCODE_DUPLICATE_DATABASE                      MAKE_SQLSTATE('4','2', 'P','0','4')
 
271
#define ERRCODE_DUPLICATE_FUNCTION                      MAKE_SQLSTATE('4','2', '7','2','3')
 
272
#define ERRCODE_DUPLICATE_PSTATEMENT            MAKE_SQLSTATE('4','2', 'P','0','5')
 
273
#define ERRCODE_DUPLICATE_SCHEMA                        MAKE_SQLSTATE('4','2', 'P','0','6')
 
274
#define ERRCODE_DUPLICATE_TABLE                         MAKE_SQLSTATE('4','2', 'P','0','7')
 
275
#define ERRCODE_DUPLICATE_ALIAS                         MAKE_SQLSTATE('4','2', '7','1','2')
 
276
#define ERRCODE_DUPLICATE_OBJECT                        MAKE_SQLSTATE('4','2', '7','1','0')
 
277
#define ERRCODE_AMBIGUOUS_COLUMN                        MAKE_SQLSTATE('4','2', '7','0','2')
 
278
#define ERRCODE_AMBIGUOUS_FUNCTION                      MAKE_SQLSTATE('4','2', '7','2','5')
 
279
#define ERRCODE_AMBIGUOUS_PARAMETER                     MAKE_SQLSTATE('4','2', 'P','0','8')
 
280
#define ERRCODE_AMBIGUOUS_ALIAS                         MAKE_SQLSTATE('4','2', 'P','0','9')
 
281
#define ERRCODE_INVALID_COLUMN_REFERENCE        MAKE_SQLSTATE('4','2', 'P','1','0')
 
282
#define ERRCODE_INVALID_COLUMN_DEFINITION       MAKE_SQLSTATE('4','2', '6','1','1')
 
283
#define ERRCODE_INVALID_CURSOR_DEFINITION       MAKE_SQLSTATE('4','2', 'P','1','1')
 
284
#define ERRCODE_INVALID_DATABASE_DEFINITION MAKE_SQLSTATE('4','2', 'P','1','2')
 
285
#define ERRCODE_INVALID_FUNCTION_DEFINITION MAKE_SQLSTATE('4','2', 'P','1','3')
 
286
#define ERRCODE_INVALID_PSTATEMENT_DEFINITION   MAKE_SQLSTATE('4','2', 'P','1','4')
 
287
#define ERRCODE_INVALID_SCHEMA_DEFINITION       MAKE_SQLSTATE('4','2', 'P','1','5')
 
288
#define ERRCODE_INVALID_TABLE_DEFINITION        MAKE_SQLSTATE('4','2', 'P','1','6')
 
289
#define ERRCODE_INVALID_OBJECT_DEFINITION       MAKE_SQLSTATE('4','2', 'P','1','7')
 
290
 
 
291
/* Class 44 - WITH CHECK OPTION Violation */
 
292
#define ERRCODE_WITH_CHECK_OPTION_VIOLATION MAKE_SQLSTATE('4','4', '0','0','0')
 
293
 
 
294
/* Class 53 - Insufficient Resources (PostgreSQL-specific error class) */
 
295
#define ERRCODE_INSUFFICIENT_RESOURCES          MAKE_SQLSTATE('5','3', '0','0','0')
 
296
#define ERRCODE_DISK_FULL                                       MAKE_SQLSTATE('5','3', '1','0','0')
 
297
#define ERRCODE_OUT_OF_MEMORY                           MAKE_SQLSTATE('5','3', '2','0','0')
 
298
#define ERRCODE_TOO_MANY_CONNECTIONS            MAKE_SQLSTATE('5','3', '3','0','0')
 
299
 
 
300
/* Class 54 - Program Limit Exceeded (class borrowed from DB2) */
 
301
/* (this is for wired-in limits, not resource exhaustion problems) */
 
302
#define ERRCODE_PROGRAM_LIMIT_EXCEEDED          MAKE_SQLSTATE('5','4', '0','0','0')
 
303
#define ERRCODE_STATEMENT_TOO_COMPLEX           MAKE_SQLSTATE('5','4', '0','0','1')
 
304
#define ERRCODE_TOO_MANY_COLUMNS                        MAKE_SQLSTATE('5','4', '0','1','1')
 
305
#define ERRCODE_TOO_MANY_ARGUMENTS                      MAKE_SQLSTATE('5','4', '0','2','3')
 
306
 
 
307
/* Class 55 - Object Not In Prerequisite State (class borrowed from DB2) */
 
308
#define ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE        MAKE_SQLSTATE('5','5', '0','0','0')
 
309
#define ERRCODE_OBJECT_IN_USE                           MAKE_SQLSTATE('5','5', '0','0','6')
 
310
#define ERRCODE_CANT_CHANGE_RUNTIME_PARAM       MAKE_SQLSTATE('5','5', 'P','0','2')
 
311
#define ERRCODE_LOCK_NOT_AVAILABLE                      MAKE_SQLSTATE('5','5', 'P','0','3')
 
312
 
 
313
/* Class 57 - Operator Intervention (class borrowed from DB2) */
 
314
#define ERRCODE_OPERATOR_INTERVENTION           MAKE_SQLSTATE('5','7', '0','0','0')
 
315
#define ERRCODE_QUERY_CANCELED                          MAKE_SQLSTATE('5','7', '0','1','4')
 
316
#define ERRCODE_ADMIN_SHUTDOWN                          MAKE_SQLSTATE('5','7', 'P','0','1')
 
317
#define ERRCODE_CRASH_SHUTDOWN                          MAKE_SQLSTATE('5','7', 'P','0','2')
 
318
#define ERRCODE_CANNOT_CONNECT_NOW                      MAKE_SQLSTATE('5','7', 'P','0','3')
 
319
 
 
320
/* Class 58 - System Error (class borrowed from DB2) */
 
321
/* (we define this as errors external to PostgreSQL itself) */
 
322
#define ERRCODE_IO_ERROR                                        MAKE_SQLSTATE('5','8', '0','3','0')
 
323
#define ERRCODE_UNDEFINED_FILE                          MAKE_SQLSTATE('5','8', 'P','0','1')
 
324
#define ERRCODE_DUPLICATE_FILE                          MAKE_SQLSTATE('5','8', 'P','0','2')
 
325
 
 
326
/* Class F0 - Configuration File Error (PostgreSQL-specific error class) */
 
327
#define ERRCODE_CONFIG_FILE_ERROR                       MAKE_SQLSTATE('F','0', '0','0','0')
 
328
#define ERRCODE_LOCK_FILE_EXISTS                        MAKE_SQLSTATE('F','0', '0','0','1')
 
329
 
 
330
/* Class P0 - PL/pgSQL Error (PostgreSQL-specific error class) */
 
331
#define ERRCODE_PLPGSQL_ERROR                           MAKE_SQLSTATE('P','0', '0','0','0')
 
332
#define ERRCODE_RAISE_EXCEPTION                         MAKE_SQLSTATE('P','0', '0','0','1')
 
333
 
 
334
/* Class XX - Internal Error (PostgreSQL-specific error class) */
 
335
/* (this is for "can't-happen" conditions and software bugs) */
 
336
#define ERRCODE_INTERNAL_ERROR                          MAKE_SQLSTATE('X','X', '0','0','0')
 
337
#define ERRCODE_DATA_CORRUPTED                          MAKE_SQLSTATE('X','X', '0','0','1')
 
338
#define ERRCODE_INDEX_CORRUPTED                         MAKE_SQLSTATE('X','X', '0','0','2')