pg 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +3 -0
- data.tar.gz.sig +0 -0
- data/.gemtest +0 -0
- data/BSDL +22 -0
- data/ChangeLog +6595 -0
- data/Contributors.rdoc +46 -0
- data/History.rdoc +492 -0
- data/LICENSE +56 -0
- data/Manifest.txt +72 -0
- data/POSTGRES +23 -0
- data/README-OS_X.rdoc +68 -0
- data/README-Windows.rdoc +56 -0
- data/README.ja.rdoc +14 -0
- data/README.rdoc +178 -0
- data/Rakefile +215 -0
- data/Rakefile.cross +298 -0
- data/ext/errorcodes.def +968 -0
- data/ext/errorcodes.rb +45 -0
- data/ext/errorcodes.txt +478 -0
- data/ext/extconf.rb +94 -0
- data/ext/gvl_wrappers.c +17 -0
- data/ext/gvl_wrappers.h +241 -0
- data/ext/pg.c +640 -0
- data/ext/pg.h +365 -0
- data/ext/pg_binary_decoder.c +229 -0
- data/ext/pg_binary_encoder.c +162 -0
- data/ext/pg_coder.c +549 -0
- data/ext/pg_connection.c +4252 -0
- data/ext/pg_copy_coder.c +596 -0
- data/ext/pg_errors.c +95 -0
- data/ext/pg_result.c +1501 -0
- data/ext/pg_text_decoder.c +981 -0
- data/ext/pg_text_encoder.c +682 -0
- data/ext/pg_tuple.c +541 -0
- data/ext/pg_type_map.c +166 -0
- data/ext/pg_type_map_all_strings.c +116 -0
- data/ext/pg_type_map_by_class.c +239 -0
- data/ext/pg_type_map_by_column.c +312 -0
- data/ext/pg_type_map_by_mri_type.c +284 -0
- data/ext/pg_type_map_by_oid.c +355 -0
- data/ext/pg_type_map_in_ruby.c +299 -0
- data/ext/util.c +149 -0
- data/ext/util.h +65 -0
- data/ext/vc/pg.sln +26 -0
- data/ext/vc/pg_18/pg.vcproj +216 -0
- data/ext/vc/pg_19/pg_19.vcproj +209 -0
- data/lib/pg.rb +74 -0
- data/lib/pg/basic_type_mapping.rb +459 -0
- data/lib/pg/binary_decoder.rb +22 -0
- data/lib/pg/coder.rb +83 -0
- data/lib/pg/connection.rb +291 -0
- data/lib/pg/constants.rb +11 -0
- data/lib/pg/exceptions.rb +11 -0
- data/lib/pg/result.rb +31 -0
- data/lib/pg/text_decoder.rb +47 -0
- data/lib/pg/text_encoder.rb +69 -0
- data/lib/pg/tuple.rb +30 -0
- data/lib/pg/type_map_by_column.rb +15 -0
- data/spec/data/expected_trace.out +26 -0
- data/spec/data/random_binary_data +0 -0
- data/spec/helpers.rb +380 -0
- data/spec/pg/basic_type_mapping_spec.rb +508 -0
- data/spec/pg/connection_spec.rb +1872 -0
- data/spec/pg/connection_sync_spec.rb +41 -0
- data/spec/pg/result_spec.rb +491 -0
- data/spec/pg/tuple_spec.rb +280 -0
- data/spec/pg/type_map_by_class_spec.rb +138 -0
- data/spec/pg/type_map_by_column_spec.rb +222 -0
- data/spec/pg/type_map_by_mri_type_spec.rb +136 -0
- data/spec/pg/type_map_by_oid_spec.rb +149 -0
- data/spec/pg/type_map_in_ruby_spec.rb +164 -0
- data/spec/pg/type_map_spec.rb +22 -0
- data/spec/pg/type_spec.rb +949 -0
- data/spec/pg_spec.rb +50 -0
- metadata +322 -0
- metadata.gz.sig +0 -0
data/ext/errorcodes.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
def camelize(lower_case_and_underscored_word)
|
4
|
+
lower_case_and_underscored_word.to_s.gsub(/\/(.?)/) { "::" + $1.upcase }.gsub(/(^|_)(.)/) { $2.upcase }
|
5
|
+
end
|
6
|
+
|
7
|
+
ec_txt, ec_def = *ARGV
|
8
|
+
|
9
|
+
File.open(ec_def, 'w') do |fd_def|
|
10
|
+
fd_def.puts <<EOCODE
|
11
|
+
/*
|
12
|
+
* #{ec_def} - Definition of error classes.
|
13
|
+
*
|
14
|
+
* WARNING: This file is autogenerated. Please edit #{__FILE__} !
|
15
|
+
*
|
16
|
+
*/
|
17
|
+
|
18
|
+
|
19
|
+
EOCODE
|
20
|
+
|
21
|
+
File.read(ec_txt).lines.each do |line|
|
22
|
+
# The format of this file is one error code per line, with the following
|
23
|
+
# whitespace-separated fields:
|
24
|
+
#
|
25
|
+
# sqlstate E/W/S errcode_macro_name spec_name
|
26
|
+
|
27
|
+
if line =~ /^(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+/i
|
28
|
+
sqlstate, ews, errcode_macro_name = $1, $2, $3
|
29
|
+
next unless ews=='E'
|
30
|
+
|
31
|
+
is_sqlclass = sqlstate[2..-1] == '000'
|
32
|
+
class_code = sqlstate[0,2]
|
33
|
+
baseclass_code = is_sqlclass ? 'NULL' : class_code.inspect
|
34
|
+
class_name = camelize(errcode_macro_name.sub('ERRCODE_', '').downcase)
|
35
|
+
|
36
|
+
fd_def.puts "{"
|
37
|
+
fd_def.puts " VALUE klass = define_error_class( #{class_name.inspect}, #{baseclass_code} );"
|
38
|
+
fd_def.puts " register_error_class( #{sqlstate.inspect}, klass );"
|
39
|
+
if is_sqlclass
|
40
|
+
fd_def.puts " register_error_class( #{class_code.inspect}, klass );"
|
41
|
+
end
|
42
|
+
fd_def.puts "}"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/ext/errorcodes.txt
ADDED
@@ -0,0 +1,478 @@
|
|
1
|
+
#
|
2
|
+
# errcodes.txt
|
3
|
+
# PostgreSQL error codes
|
4
|
+
#
|
5
|
+
# Copyright (c) 2003-2018, PostgreSQL Global Development Group
|
6
|
+
#
|
7
|
+
# This list serves as the basis for generating source files containing error
|
8
|
+
# codes. It is kept in a common format to make sure all these source files have
|
9
|
+
# the same contents.
|
10
|
+
# The files generated from this one are:
|
11
|
+
#
|
12
|
+
# src/include/utils/errcodes.h
|
13
|
+
# macros defining errcode constants to be used in the rest of the source
|
14
|
+
#
|
15
|
+
# src/pl/plpgsql/src/plerrcodes.h
|
16
|
+
# a list of PL/pgSQL condition names and their SQLSTATE codes
|
17
|
+
#
|
18
|
+
# src/pl/tcl/pltclerrcodes.h
|
19
|
+
# the same, for PL/Tcl
|
20
|
+
#
|
21
|
+
# doc/src/sgml/errcodes-list.sgml
|
22
|
+
# a SGML table of error codes for inclusion in the documentation
|
23
|
+
#
|
24
|
+
# The format of this file is one error code per line, with the following
|
25
|
+
# whitespace-separated fields:
|
26
|
+
#
|
27
|
+
# sqlstate E/W/S errcode_macro_name spec_name
|
28
|
+
#
|
29
|
+
# where sqlstate is a five-character string following the SQLSTATE conventions,
|
30
|
+
# the second field indicates if the code means an error, a warning or success,
|
31
|
+
# errcode_macro_name is the C macro name starting with ERRCODE that will be put
|
32
|
+
# in errcodes.h, and spec_name is a lowercase, underscore-separated name that
|
33
|
+
# will be used as the PL/pgSQL condition name and will also be included in the
|
34
|
+
# SGML list. The last field is optional, if not present the PL/pgSQL condition
|
35
|
+
# and the SGML entry will not be generated.
|
36
|
+
#
|
37
|
+
# Empty lines and lines starting with a hash are comments.
|
38
|
+
#
|
39
|
+
# There are also special lines in the format of:
|
40
|
+
#
|
41
|
+
# Section: section description
|
42
|
+
#
|
43
|
+
# that is, lines starting with the string "Section:". They are used to delimit
|
44
|
+
# error classes as defined in the SQL spec, and are necessary for SGML output.
|
45
|
+
#
|
46
|
+
#
|
47
|
+
# SQLSTATE codes for errors.
|
48
|
+
#
|
49
|
+
# The SQL99 code set is rather impoverished, especially in the area of
|
50
|
+
# syntactical and semantic errors. We have borrowed codes from IBM's DB2
|
51
|
+
# and invented our own codes to develop a useful code set.
|
52
|
+
#
|
53
|
+
# When adding a new code, make sure it is placed in the most appropriate
|
54
|
+
# class (the first two characters of the code value identify the class).
|
55
|
+
# The listing is organized by class to make this prominent.
|
56
|
+
#
|
57
|
+
# Each class should have a generic '000' subclass. However,
|
58
|
+
# the generic '000' subclass code should be used for an error only
|
59
|
+
# when there is not a more-specific subclass code defined.
|
60
|
+
#
|
61
|
+
# The SQL spec requires that all the elements of a SQLSTATE code be
|
62
|
+
# either digits or upper-case ASCII characters.
|
63
|
+
#
|
64
|
+
# Classes that begin with 0-4 or A-H are defined by the
|
65
|
+
# standard. Within such a class, subclass values defined by the
|
66
|
+
# standard must begin with 0-4 or A-H. To define a new error code,
|
67
|
+
# ensure that it is either in an "implementation-defined class" (it
|
68
|
+
# begins with 5-9 or I-Z), or its subclass falls outside the range of
|
69
|
+
# error codes that could be present in future versions of the
|
70
|
+
# standard (i.e. the subclass value begins with 5-9 or I-Z).
|
71
|
+
#
|
72
|
+
# The convention is that new error codes defined by PostgreSQL in a
|
73
|
+
# class defined by the standard have a subclass value that begins
|
74
|
+
# with 'P'. In addition, error codes defined by PostgreSQL clients
|
75
|
+
# (such as ecpg) have a class value that begins with 'Y'.
|
76
|
+
|
77
|
+
Section: Class 00 - Successful Completion
|
78
|
+
|
79
|
+
00000 S ERRCODE_SUCCESSFUL_COMPLETION successful_completion
|
80
|
+
|
81
|
+
Section: Class 01 - Warning
|
82
|
+
|
83
|
+
# do not use this class for failure conditions
|
84
|
+
01000 W ERRCODE_WARNING warning
|
85
|
+
0100C W ERRCODE_WARNING_DYNAMIC_RESULT_SETS_RETURNED dynamic_result_sets_returned
|
86
|
+
01008 W ERRCODE_WARNING_IMPLICIT_ZERO_BIT_PADDING implicit_zero_bit_padding
|
87
|
+
01003 W ERRCODE_WARNING_NULL_VALUE_ELIMINATED_IN_SET_FUNCTION null_value_eliminated_in_set_function
|
88
|
+
01007 W ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED privilege_not_granted
|
89
|
+
01006 W ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED privilege_not_revoked
|
90
|
+
01004 W ERRCODE_WARNING_STRING_DATA_RIGHT_TRUNCATION string_data_right_truncation
|
91
|
+
01P01 W ERRCODE_WARNING_DEPRECATED_FEATURE deprecated_feature
|
92
|
+
|
93
|
+
Section: Class 02 - No Data (this is also a warning class per the SQL standard)
|
94
|
+
|
95
|
+
# do not use this class for failure conditions
|
96
|
+
02000 W ERRCODE_NO_DATA no_data
|
97
|
+
02001 W ERRCODE_NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED no_additional_dynamic_result_sets_returned
|
98
|
+
|
99
|
+
Section: Class 03 - SQL Statement Not Yet Complete
|
100
|
+
|
101
|
+
03000 E ERRCODE_SQL_STATEMENT_NOT_YET_COMPLETE sql_statement_not_yet_complete
|
102
|
+
|
103
|
+
Section: Class 08 - Connection Exception
|
104
|
+
|
105
|
+
08000 E ERRCODE_CONNECTION_EXCEPTION connection_exception
|
106
|
+
08003 E ERRCODE_CONNECTION_DOES_NOT_EXIST connection_does_not_exist
|
107
|
+
08006 E ERRCODE_CONNECTION_FAILURE connection_failure
|
108
|
+
08001 E ERRCODE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION sqlclient_unable_to_establish_sqlconnection
|
109
|
+
08004 E ERRCODE_SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION sqlserver_rejected_establishment_of_sqlconnection
|
110
|
+
08007 E ERRCODE_TRANSACTION_RESOLUTION_UNKNOWN transaction_resolution_unknown
|
111
|
+
08P01 E ERRCODE_PROTOCOL_VIOLATION protocol_violation
|
112
|
+
|
113
|
+
Section: Class 09 - Triggered Action Exception
|
114
|
+
|
115
|
+
09000 E ERRCODE_TRIGGERED_ACTION_EXCEPTION triggered_action_exception
|
116
|
+
|
117
|
+
Section: Class 0A - Feature Not Supported
|
118
|
+
|
119
|
+
0A000 E ERRCODE_FEATURE_NOT_SUPPORTED feature_not_supported
|
120
|
+
|
121
|
+
Section: Class 0B - Invalid Transaction Initiation
|
122
|
+
|
123
|
+
0B000 E ERRCODE_INVALID_TRANSACTION_INITIATION invalid_transaction_initiation
|
124
|
+
|
125
|
+
Section: Class 0F - Locator Exception
|
126
|
+
|
127
|
+
0F000 E ERRCODE_LOCATOR_EXCEPTION locator_exception
|
128
|
+
0F001 E ERRCODE_L_E_INVALID_SPECIFICATION invalid_locator_specification
|
129
|
+
|
130
|
+
Section: Class 0L - Invalid Grantor
|
131
|
+
|
132
|
+
0L000 E ERRCODE_INVALID_GRANTOR invalid_grantor
|
133
|
+
0LP01 E ERRCODE_INVALID_GRANT_OPERATION invalid_grant_operation
|
134
|
+
|
135
|
+
Section: Class 0P - Invalid Role Specification
|
136
|
+
|
137
|
+
0P000 E ERRCODE_INVALID_ROLE_SPECIFICATION invalid_role_specification
|
138
|
+
|
139
|
+
Section: Class 0Z - Diagnostics Exception
|
140
|
+
|
141
|
+
0Z000 E ERRCODE_DIAGNOSTICS_EXCEPTION diagnostics_exception
|
142
|
+
0Z002 E ERRCODE_STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER stacked_diagnostics_accessed_without_active_handler
|
143
|
+
|
144
|
+
Section: Class 20 - Case Not Found
|
145
|
+
|
146
|
+
20000 E ERRCODE_CASE_NOT_FOUND case_not_found
|
147
|
+
|
148
|
+
Section: Class 21 - Cardinality Violation
|
149
|
+
|
150
|
+
# this means something returned the wrong number of rows
|
151
|
+
21000 E ERRCODE_CARDINALITY_VIOLATION cardinality_violation
|
152
|
+
|
153
|
+
Section: Class 22 - Data Exception
|
154
|
+
|
155
|
+
22000 E ERRCODE_DATA_EXCEPTION data_exception
|
156
|
+
2202E E ERRCODE_ARRAY_ELEMENT_ERROR
|
157
|
+
# SQL99's actual definition of "array element error" is subscript error
|
158
|
+
2202E E ERRCODE_ARRAY_SUBSCRIPT_ERROR array_subscript_error
|
159
|
+
22021 E ERRCODE_CHARACTER_NOT_IN_REPERTOIRE character_not_in_repertoire
|
160
|
+
22008 E ERRCODE_DATETIME_FIELD_OVERFLOW datetime_field_overflow
|
161
|
+
22008 E ERRCODE_DATETIME_VALUE_OUT_OF_RANGE
|
162
|
+
22012 E ERRCODE_DIVISION_BY_ZERO division_by_zero
|
163
|
+
22005 E ERRCODE_ERROR_IN_ASSIGNMENT error_in_assignment
|
164
|
+
2200B E ERRCODE_ESCAPE_CHARACTER_CONFLICT escape_character_conflict
|
165
|
+
22022 E ERRCODE_INDICATOR_OVERFLOW indicator_overflow
|
166
|
+
22015 E ERRCODE_INTERVAL_FIELD_OVERFLOW interval_field_overflow
|
167
|
+
2201E E ERRCODE_INVALID_ARGUMENT_FOR_LOG invalid_argument_for_logarithm
|
168
|
+
22014 E ERRCODE_INVALID_ARGUMENT_FOR_NTILE invalid_argument_for_ntile_function
|
169
|
+
22016 E ERRCODE_INVALID_ARGUMENT_FOR_NTH_VALUE invalid_argument_for_nth_value_function
|
170
|
+
2201F E ERRCODE_INVALID_ARGUMENT_FOR_POWER_FUNCTION invalid_argument_for_power_function
|
171
|
+
2201G E ERRCODE_INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION invalid_argument_for_width_bucket_function
|
172
|
+
22018 E ERRCODE_INVALID_CHARACTER_VALUE_FOR_CAST invalid_character_value_for_cast
|
173
|
+
22007 E ERRCODE_INVALID_DATETIME_FORMAT invalid_datetime_format
|
174
|
+
22019 E ERRCODE_INVALID_ESCAPE_CHARACTER invalid_escape_character
|
175
|
+
2200D E ERRCODE_INVALID_ESCAPE_OCTET invalid_escape_octet
|
176
|
+
22025 E ERRCODE_INVALID_ESCAPE_SEQUENCE invalid_escape_sequence
|
177
|
+
22P06 E ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER nonstandard_use_of_escape_character
|
178
|
+
22010 E ERRCODE_INVALID_INDICATOR_PARAMETER_VALUE invalid_indicator_parameter_value
|
179
|
+
22023 E ERRCODE_INVALID_PARAMETER_VALUE invalid_parameter_value
|
180
|
+
22013 E ERRCODE_INVALID_PRECEDING_OR_FOLLOWING_SIZE invalid_preceding_or_following_size
|
181
|
+
2201B E ERRCODE_INVALID_REGULAR_EXPRESSION invalid_regular_expression
|
182
|
+
2201W E ERRCODE_INVALID_ROW_COUNT_IN_LIMIT_CLAUSE invalid_row_count_in_limit_clause
|
183
|
+
2201X E ERRCODE_INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE invalid_row_count_in_result_offset_clause
|
184
|
+
2202H E ERRCODE_INVALID_TABLESAMPLE_ARGUMENT invalid_tablesample_argument
|
185
|
+
2202G E ERRCODE_INVALID_TABLESAMPLE_REPEAT invalid_tablesample_repeat
|
186
|
+
22009 E ERRCODE_INVALID_TIME_ZONE_DISPLACEMENT_VALUE invalid_time_zone_displacement_value
|
187
|
+
2200C E ERRCODE_INVALID_USE_OF_ESCAPE_CHARACTER invalid_use_of_escape_character
|
188
|
+
2200G E ERRCODE_MOST_SPECIFIC_TYPE_MISMATCH most_specific_type_mismatch
|
189
|
+
22004 E ERRCODE_NULL_VALUE_NOT_ALLOWED null_value_not_allowed
|
190
|
+
22002 E ERRCODE_NULL_VALUE_NO_INDICATOR_PARAMETER null_value_no_indicator_parameter
|
191
|
+
22003 E ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE numeric_value_out_of_range
|
192
|
+
2200H E ERRCODE_SEQUENCE_GENERATOR_LIMIT_EXCEEDED sequence_generator_limit_exceeded
|
193
|
+
22026 E ERRCODE_STRING_DATA_LENGTH_MISMATCH string_data_length_mismatch
|
194
|
+
22001 E ERRCODE_STRING_DATA_RIGHT_TRUNCATION string_data_right_truncation
|
195
|
+
22011 E ERRCODE_SUBSTRING_ERROR substring_error
|
196
|
+
22027 E ERRCODE_TRIM_ERROR trim_error
|
197
|
+
22024 E ERRCODE_UNTERMINATED_C_STRING unterminated_c_string
|
198
|
+
2200F E ERRCODE_ZERO_LENGTH_CHARACTER_STRING zero_length_character_string
|
199
|
+
22P01 E ERRCODE_FLOATING_POINT_EXCEPTION floating_point_exception
|
200
|
+
22P02 E ERRCODE_INVALID_TEXT_REPRESENTATION invalid_text_representation
|
201
|
+
22P03 E ERRCODE_INVALID_BINARY_REPRESENTATION invalid_binary_representation
|
202
|
+
22P04 E ERRCODE_BAD_COPY_FILE_FORMAT bad_copy_file_format
|
203
|
+
22P05 E ERRCODE_UNTRANSLATABLE_CHARACTER untranslatable_character
|
204
|
+
2200L E ERRCODE_NOT_AN_XML_DOCUMENT not_an_xml_document
|
205
|
+
2200M E ERRCODE_INVALID_XML_DOCUMENT invalid_xml_document
|
206
|
+
2200N E ERRCODE_INVALID_XML_CONTENT invalid_xml_content
|
207
|
+
2200S E ERRCODE_INVALID_XML_COMMENT invalid_xml_comment
|
208
|
+
2200T E ERRCODE_INVALID_XML_PROCESSING_INSTRUCTION invalid_xml_processing_instruction
|
209
|
+
|
210
|
+
Section: Class 23 - Integrity Constraint Violation
|
211
|
+
|
212
|
+
23000 E ERRCODE_INTEGRITY_CONSTRAINT_VIOLATION integrity_constraint_violation
|
213
|
+
23001 E ERRCODE_RESTRICT_VIOLATION restrict_violation
|
214
|
+
23502 E ERRCODE_NOT_NULL_VIOLATION not_null_violation
|
215
|
+
23503 E ERRCODE_FOREIGN_KEY_VIOLATION foreign_key_violation
|
216
|
+
23505 E ERRCODE_UNIQUE_VIOLATION unique_violation
|
217
|
+
23514 E ERRCODE_CHECK_VIOLATION check_violation
|
218
|
+
23P01 E ERRCODE_EXCLUSION_VIOLATION exclusion_violation
|
219
|
+
|
220
|
+
Section: Class 24 - Invalid Cursor State
|
221
|
+
|
222
|
+
24000 E ERRCODE_INVALID_CURSOR_STATE invalid_cursor_state
|
223
|
+
|
224
|
+
Section: Class 25 - Invalid Transaction State
|
225
|
+
|
226
|
+
25000 E ERRCODE_INVALID_TRANSACTION_STATE invalid_transaction_state
|
227
|
+
25001 E ERRCODE_ACTIVE_SQL_TRANSACTION active_sql_transaction
|
228
|
+
25002 E ERRCODE_BRANCH_TRANSACTION_ALREADY_ACTIVE branch_transaction_already_active
|
229
|
+
25008 E ERRCODE_HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL held_cursor_requires_same_isolation_level
|
230
|
+
25003 E ERRCODE_INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION inappropriate_access_mode_for_branch_transaction
|
231
|
+
25004 E ERRCODE_INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION inappropriate_isolation_level_for_branch_transaction
|
232
|
+
25005 E ERRCODE_NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION no_active_sql_transaction_for_branch_transaction
|
233
|
+
25006 E ERRCODE_READ_ONLY_SQL_TRANSACTION read_only_sql_transaction
|
234
|
+
25007 E ERRCODE_SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED schema_and_data_statement_mixing_not_supported
|
235
|
+
25P01 E ERRCODE_NO_ACTIVE_SQL_TRANSACTION no_active_sql_transaction
|
236
|
+
25P02 E ERRCODE_IN_FAILED_SQL_TRANSACTION in_failed_sql_transaction
|
237
|
+
25P03 E ERRCODE_IDLE_IN_TRANSACTION_SESSION_TIMEOUT idle_in_transaction_session_timeout
|
238
|
+
|
239
|
+
Section: Class 26 - Invalid SQL Statement Name
|
240
|
+
|
241
|
+
# (we take this to mean prepared statements
|
242
|
+
26000 E ERRCODE_INVALID_SQL_STATEMENT_NAME invalid_sql_statement_name
|
243
|
+
|
244
|
+
Section: Class 27 - Triggered Data Change Violation
|
245
|
+
|
246
|
+
27000 E ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION triggered_data_change_violation
|
247
|
+
|
248
|
+
Section: Class 28 - Invalid Authorization Specification
|
249
|
+
|
250
|
+
28000 E ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION invalid_authorization_specification
|
251
|
+
28P01 E ERRCODE_INVALID_PASSWORD invalid_password
|
252
|
+
|
253
|
+
Section: Class 2B - Dependent Privilege Descriptors Still Exist
|
254
|
+
|
255
|
+
2B000 E ERRCODE_DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST dependent_privilege_descriptors_still_exist
|
256
|
+
2BP01 E ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST dependent_objects_still_exist
|
257
|
+
|
258
|
+
Section: Class 2D - Invalid Transaction Termination
|
259
|
+
|
260
|
+
2D000 E ERRCODE_INVALID_TRANSACTION_TERMINATION invalid_transaction_termination
|
261
|
+
|
262
|
+
Section: Class 2F - SQL Routine Exception
|
263
|
+
|
264
|
+
2F000 E ERRCODE_SQL_ROUTINE_EXCEPTION sql_routine_exception
|
265
|
+
2F005 E ERRCODE_S_R_E_FUNCTION_EXECUTED_NO_RETURN_STATEMENT function_executed_no_return_statement
|
266
|
+
2F002 E ERRCODE_S_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED modifying_sql_data_not_permitted
|
267
|
+
2F003 E ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED prohibited_sql_statement_attempted
|
268
|
+
2F004 E ERRCODE_S_R_E_READING_SQL_DATA_NOT_PERMITTED reading_sql_data_not_permitted
|
269
|
+
|
270
|
+
Section: Class 34 - Invalid Cursor Name
|
271
|
+
|
272
|
+
34000 E ERRCODE_INVALID_CURSOR_NAME invalid_cursor_name
|
273
|
+
|
274
|
+
Section: Class 38 - External Routine Exception
|
275
|
+
|
276
|
+
38000 E ERRCODE_EXTERNAL_ROUTINE_EXCEPTION external_routine_exception
|
277
|
+
38001 E ERRCODE_E_R_E_CONTAINING_SQL_NOT_PERMITTED containing_sql_not_permitted
|
278
|
+
38002 E ERRCODE_E_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED modifying_sql_data_not_permitted
|
279
|
+
38003 E ERRCODE_E_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED prohibited_sql_statement_attempted
|
280
|
+
38004 E ERRCODE_E_R_E_READING_SQL_DATA_NOT_PERMITTED reading_sql_data_not_permitted
|
281
|
+
|
282
|
+
Section: Class 39 - External Routine Invocation Exception
|
283
|
+
|
284
|
+
39000 E ERRCODE_EXTERNAL_ROUTINE_INVOCATION_EXCEPTION external_routine_invocation_exception
|
285
|
+
39001 E ERRCODE_E_R_I_E_INVALID_SQLSTATE_RETURNED invalid_sqlstate_returned
|
286
|
+
39004 E ERRCODE_E_R_I_E_NULL_VALUE_NOT_ALLOWED null_value_not_allowed
|
287
|
+
39P01 E ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED trigger_protocol_violated
|
288
|
+
39P02 E ERRCODE_E_R_I_E_SRF_PROTOCOL_VIOLATED srf_protocol_violated
|
289
|
+
39P03 E ERRCODE_E_R_I_E_EVENT_TRIGGER_PROTOCOL_VIOLATED event_trigger_protocol_violated
|
290
|
+
|
291
|
+
Section: Class 3B - Savepoint Exception
|
292
|
+
|
293
|
+
3B000 E ERRCODE_SAVEPOINT_EXCEPTION savepoint_exception
|
294
|
+
3B001 E ERRCODE_S_E_INVALID_SPECIFICATION invalid_savepoint_specification
|
295
|
+
|
296
|
+
Section: Class 3D - Invalid Catalog Name
|
297
|
+
|
298
|
+
3D000 E ERRCODE_INVALID_CATALOG_NAME invalid_catalog_name
|
299
|
+
|
300
|
+
Section: Class 3F - Invalid Schema Name
|
301
|
+
|
302
|
+
3F000 E ERRCODE_INVALID_SCHEMA_NAME invalid_schema_name
|
303
|
+
|
304
|
+
Section: Class 40 - Transaction Rollback
|
305
|
+
|
306
|
+
40000 E ERRCODE_TRANSACTION_ROLLBACK transaction_rollback
|
307
|
+
40002 E ERRCODE_T_R_INTEGRITY_CONSTRAINT_VIOLATION transaction_integrity_constraint_violation
|
308
|
+
40001 E ERRCODE_T_R_SERIALIZATION_FAILURE serialization_failure
|
309
|
+
40003 E ERRCODE_T_R_STATEMENT_COMPLETION_UNKNOWN statement_completion_unknown
|
310
|
+
40P01 E ERRCODE_T_R_DEADLOCK_DETECTED deadlock_detected
|
311
|
+
|
312
|
+
Section: Class 42 - Syntax Error or Access Rule Violation
|
313
|
+
|
314
|
+
42000 E ERRCODE_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION syntax_error_or_access_rule_violation
|
315
|
+
# never use the above; use one of these two if no specific code exists:
|
316
|
+
42601 E ERRCODE_SYNTAX_ERROR syntax_error
|
317
|
+
42501 E ERRCODE_INSUFFICIENT_PRIVILEGE insufficient_privilege
|
318
|
+
42846 E ERRCODE_CANNOT_COERCE cannot_coerce
|
319
|
+
42803 E ERRCODE_GROUPING_ERROR grouping_error
|
320
|
+
42P20 E ERRCODE_WINDOWING_ERROR windowing_error
|
321
|
+
42P19 E ERRCODE_INVALID_RECURSION invalid_recursion
|
322
|
+
42830 E ERRCODE_INVALID_FOREIGN_KEY invalid_foreign_key
|
323
|
+
42602 E ERRCODE_INVALID_NAME invalid_name
|
324
|
+
42622 E ERRCODE_NAME_TOO_LONG name_too_long
|
325
|
+
42939 E ERRCODE_RESERVED_NAME reserved_name
|
326
|
+
42804 E ERRCODE_DATATYPE_MISMATCH datatype_mismatch
|
327
|
+
42P18 E ERRCODE_INDETERMINATE_DATATYPE indeterminate_datatype
|
328
|
+
42P21 E ERRCODE_COLLATION_MISMATCH collation_mismatch
|
329
|
+
42P22 E ERRCODE_INDETERMINATE_COLLATION indeterminate_collation
|
330
|
+
42809 E ERRCODE_WRONG_OBJECT_TYPE wrong_object_type
|
331
|
+
428C9 E ERRCODE_GENERATED_ALWAYS generated_always
|
332
|
+
|
333
|
+
# Note: for ERRCODE purposes, we divide namable objects into these categories:
|
334
|
+
# databases, schemas, prepared statements, cursors, tables, columns,
|
335
|
+
# functions (including operators), and all else (lumped as "objects").
|
336
|
+
# (The first four categories are mandated by the existence of separate
|
337
|
+
# SQLSTATE classes for them in the spec; in this file, however, we group
|
338
|
+
# the ERRCODE names with all the rest under class 42.) Parameters are
|
339
|
+
# sort-of-named objects and get their own ERRCODE.
|
340
|
+
#
|
341
|
+
# The same breakdown is used for "duplicate" and "ambiguous" complaints,
|
342
|
+
# as well as complaints associated with incorrect declarations.
|
343
|
+
|
344
|
+
42703 E ERRCODE_UNDEFINED_COLUMN undefined_column
|
345
|
+
34000 E ERRCODE_UNDEFINED_CURSOR
|
346
|
+
3D000 E ERRCODE_UNDEFINED_DATABASE
|
347
|
+
42883 E ERRCODE_UNDEFINED_FUNCTION undefined_function
|
348
|
+
26000 E ERRCODE_UNDEFINED_PSTATEMENT
|
349
|
+
3F000 E ERRCODE_UNDEFINED_SCHEMA
|
350
|
+
42P01 E ERRCODE_UNDEFINED_TABLE undefined_table
|
351
|
+
42P02 E ERRCODE_UNDEFINED_PARAMETER undefined_parameter
|
352
|
+
42704 E ERRCODE_UNDEFINED_OBJECT undefined_object
|
353
|
+
42701 E ERRCODE_DUPLICATE_COLUMN duplicate_column
|
354
|
+
42P03 E ERRCODE_DUPLICATE_CURSOR duplicate_cursor
|
355
|
+
42P04 E ERRCODE_DUPLICATE_DATABASE duplicate_database
|
356
|
+
42723 E ERRCODE_DUPLICATE_FUNCTION duplicate_function
|
357
|
+
42P05 E ERRCODE_DUPLICATE_PSTATEMENT duplicate_prepared_statement
|
358
|
+
42P06 E ERRCODE_DUPLICATE_SCHEMA duplicate_schema
|
359
|
+
42P07 E ERRCODE_DUPLICATE_TABLE duplicate_table
|
360
|
+
42712 E ERRCODE_DUPLICATE_ALIAS duplicate_alias
|
361
|
+
42710 E ERRCODE_DUPLICATE_OBJECT duplicate_object
|
362
|
+
42702 E ERRCODE_AMBIGUOUS_COLUMN ambiguous_column
|
363
|
+
42725 E ERRCODE_AMBIGUOUS_FUNCTION ambiguous_function
|
364
|
+
42P08 E ERRCODE_AMBIGUOUS_PARAMETER ambiguous_parameter
|
365
|
+
42P09 E ERRCODE_AMBIGUOUS_ALIAS ambiguous_alias
|
366
|
+
42P10 E ERRCODE_INVALID_COLUMN_REFERENCE invalid_column_reference
|
367
|
+
42611 E ERRCODE_INVALID_COLUMN_DEFINITION invalid_column_definition
|
368
|
+
42P11 E ERRCODE_INVALID_CURSOR_DEFINITION invalid_cursor_definition
|
369
|
+
42P12 E ERRCODE_INVALID_DATABASE_DEFINITION invalid_database_definition
|
370
|
+
42P13 E ERRCODE_INVALID_FUNCTION_DEFINITION invalid_function_definition
|
371
|
+
42P14 E ERRCODE_INVALID_PSTATEMENT_DEFINITION invalid_prepared_statement_definition
|
372
|
+
42P15 E ERRCODE_INVALID_SCHEMA_DEFINITION invalid_schema_definition
|
373
|
+
42P16 E ERRCODE_INVALID_TABLE_DEFINITION invalid_table_definition
|
374
|
+
42P17 E ERRCODE_INVALID_OBJECT_DEFINITION invalid_object_definition
|
375
|
+
|
376
|
+
Section: Class 44 - WITH CHECK OPTION Violation
|
377
|
+
|
378
|
+
44000 E ERRCODE_WITH_CHECK_OPTION_VIOLATION with_check_option_violation
|
379
|
+
|
380
|
+
Section: Class 53 - Insufficient Resources
|
381
|
+
|
382
|
+
# (PostgreSQL-specific error class)
|
383
|
+
53000 E ERRCODE_INSUFFICIENT_RESOURCES insufficient_resources
|
384
|
+
53100 E ERRCODE_DISK_FULL disk_full
|
385
|
+
53200 E ERRCODE_OUT_OF_MEMORY out_of_memory
|
386
|
+
53300 E ERRCODE_TOO_MANY_CONNECTIONS too_many_connections
|
387
|
+
53400 E ERRCODE_CONFIGURATION_LIMIT_EXCEEDED configuration_limit_exceeded
|
388
|
+
|
389
|
+
Section: Class 54 - Program Limit Exceeded
|
390
|
+
|
391
|
+
# this is for wired-in limits, not resource exhaustion problems (class borrowed from DB2)
|
392
|
+
54000 E ERRCODE_PROGRAM_LIMIT_EXCEEDED program_limit_exceeded
|
393
|
+
54001 E ERRCODE_STATEMENT_TOO_COMPLEX statement_too_complex
|
394
|
+
54011 E ERRCODE_TOO_MANY_COLUMNS too_many_columns
|
395
|
+
54023 E ERRCODE_TOO_MANY_ARGUMENTS too_many_arguments
|
396
|
+
|
397
|
+
Section: Class 55 - Object Not In Prerequisite State
|
398
|
+
|
399
|
+
# (class borrowed from DB2)
|
400
|
+
55000 E ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE object_not_in_prerequisite_state
|
401
|
+
55006 E ERRCODE_OBJECT_IN_USE object_in_use
|
402
|
+
55P02 E ERRCODE_CANT_CHANGE_RUNTIME_PARAM cant_change_runtime_param
|
403
|
+
55P03 E ERRCODE_LOCK_NOT_AVAILABLE lock_not_available
|
404
|
+
|
405
|
+
Section: Class 57 - Operator Intervention
|
406
|
+
|
407
|
+
# (class borrowed from DB2)
|
408
|
+
57000 E ERRCODE_OPERATOR_INTERVENTION operator_intervention
|
409
|
+
57014 E ERRCODE_QUERY_CANCELED query_canceled
|
410
|
+
57P01 E ERRCODE_ADMIN_SHUTDOWN admin_shutdown
|
411
|
+
57P02 E ERRCODE_CRASH_SHUTDOWN crash_shutdown
|
412
|
+
57P03 E ERRCODE_CANNOT_CONNECT_NOW cannot_connect_now
|
413
|
+
57P04 E ERRCODE_DATABASE_DROPPED database_dropped
|
414
|
+
|
415
|
+
Section: Class 58 - System Error (errors external to PostgreSQL itself)
|
416
|
+
|
417
|
+
# (class borrowed from DB2)
|
418
|
+
58000 E ERRCODE_SYSTEM_ERROR system_error
|
419
|
+
58030 E ERRCODE_IO_ERROR io_error
|
420
|
+
58P01 E ERRCODE_UNDEFINED_FILE undefined_file
|
421
|
+
58P02 E ERRCODE_DUPLICATE_FILE duplicate_file
|
422
|
+
|
423
|
+
Section: Class 72 - Snapshot Failure
|
424
|
+
# (class borrowed from Oracle)
|
425
|
+
72000 E ERRCODE_SNAPSHOT_TOO_OLD snapshot_too_old
|
426
|
+
|
427
|
+
Section: Class F0 - Configuration File Error
|
428
|
+
|
429
|
+
# (PostgreSQL-specific error class)
|
430
|
+
F0000 E ERRCODE_CONFIG_FILE_ERROR config_file_error
|
431
|
+
F0001 E ERRCODE_LOCK_FILE_EXISTS lock_file_exists
|
432
|
+
|
433
|
+
Section: Class HV - Foreign Data Wrapper Error (SQL/MED)
|
434
|
+
|
435
|
+
# (SQL/MED-specific error class)
|
436
|
+
HV000 E ERRCODE_FDW_ERROR fdw_error
|
437
|
+
HV005 E ERRCODE_FDW_COLUMN_NAME_NOT_FOUND fdw_column_name_not_found
|
438
|
+
HV002 E ERRCODE_FDW_DYNAMIC_PARAMETER_VALUE_NEEDED fdw_dynamic_parameter_value_needed
|
439
|
+
HV010 E ERRCODE_FDW_FUNCTION_SEQUENCE_ERROR fdw_function_sequence_error
|
440
|
+
HV021 E ERRCODE_FDW_INCONSISTENT_DESCRIPTOR_INFORMATION fdw_inconsistent_descriptor_information
|
441
|
+
HV024 E ERRCODE_FDW_INVALID_ATTRIBUTE_VALUE fdw_invalid_attribute_value
|
442
|
+
HV007 E ERRCODE_FDW_INVALID_COLUMN_NAME fdw_invalid_column_name
|
443
|
+
HV008 E ERRCODE_FDW_INVALID_COLUMN_NUMBER fdw_invalid_column_number
|
444
|
+
HV004 E ERRCODE_FDW_INVALID_DATA_TYPE fdw_invalid_data_type
|
445
|
+
HV006 E ERRCODE_FDW_INVALID_DATA_TYPE_DESCRIPTORS fdw_invalid_data_type_descriptors
|
446
|
+
HV091 E ERRCODE_FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER fdw_invalid_descriptor_field_identifier
|
447
|
+
HV00B E ERRCODE_FDW_INVALID_HANDLE fdw_invalid_handle
|
448
|
+
HV00C E ERRCODE_FDW_INVALID_OPTION_INDEX fdw_invalid_option_index
|
449
|
+
HV00D E ERRCODE_FDW_INVALID_OPTION_NAME fdw_invalid_option_name
|
450
|
+
HV090 E ERRCODE_FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH fdw_invalid_string_length_or_buffer_length
|
451
|
+
HV00A E ERRCODE_FDW_INVALID_STRING_FORMAT fdw_invalid_string_format
|
452
|
+
HV009 E ERRCODE_FDW_INVALID_USE_OF_NULL_POINTER fdw_invalid_use_of_null_pointer
|
453
|
+
HV014 E ERRCODE_FDW_TOO_MANY_HANDLES fdw_too_many_handles
|
454
|
+
HV001 E ERRCODE_FDW_OUT_OF_MEMORY fdw_out_of_memory
|
455
|
+
HV00P E ERRCODE_FDW_NO_SCHEMAS fdw_no_schemas
|
456
|
+
HV00J E ERRCODE_FDW_OPTION_NAME_NOT_FOUND fdw_option_name_not_found
|
457
|
+
HV00K E ERRCODE_FDW_REPLY_HANDLE fdw_reply_handle
|
458
|
+
HV00Q E ERRCODE_FDW_SCHEMA_NOT_FOUND fdw_schema_not_found
|
459
|
+
HV00R E ERRCODE_FDW_TABLE_NOT_FOUND fdw_table_not_found
|
460
|
+
HV00L E ERRCODE_FDW_UNABLE_TO_CREATE_EXECUTION fdw_unable_to_create_execution
|
461
|
+
HV00M E ERRCODE_FDW_UNABLE_TO_CREATE_REPLY fdw_unable_to_create_reply
|
462
|
+
HV00N E ERRCODE_FDW_UNABLE_TO_ESTABLISH_CONNECTION fdw_unable_to_establish_connection
|
463
|
+
|
464
|
+
Section: Class P0 - PL/pgSQL Error
|
465
|
+
|
466
|
+
# (PostgreSQL-specific error class)
|
467
|
+
P0000 E ERRCODE_PLPGSQL_ERROR plpgsql_error
|
468
|
+
P0001 E ERRCODE_RAISE_EXCEPTION raise_exception
|
469
|
+
P0002 E ERRCODE_NO_DATA_FOUND no_data_found
|
470
|
+
P0003 E ERRCODE_TOO_MANY_ROWS too_many_rows
|
471
|
+
P0004 E ERRCODE_ASSERT_FAILURE assert_failure
|
472
|
+
|
473
|
+
Section: Class XX - Internal Error
|
474
|
+
|
475
|
+
# this is for "can't-happen" conditions and software bugs (PostgreSQL-specific error class)
|
476
|
+
XX000 E ERRCODE_INTERNAL_ERROR internal_error
|
477
|
+
XX001 E ERRCODE_DATA_CORRUPTED data_corrupted
|
478
|
+
XX002 E ERRCODE_INDEX_CORRUPTED index_corrupted
|