pg 1.6.0.rc1-x86_64-linux

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.
Files changed (118) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +4 -0
  3. data/BSDL +22 -0
  4. data/Contributors.rdoc +46 -0
  5. data/Gemfile +23 -0
  6. data/History.md +958 -0
  7. data/LICENSE +56 -0
  8. data/Manifest.txt +72 -0
  9. data/POSTGRES +23 -0
  10. data/README-OS_X.rdoc +68 -0
  11. data/README-Windows.rdoc +56 -0
  12. data/README.ja.md +300 -0
  13. data/README.md +286 -0
  14. data/Rakefile +161 -0
  15. data/certs/ged.pem +24 -0
  16. data/certs/kanis@comcard.de.pem +20 -0
  17. data/certs/larskanis-2022.pem +26 -0
  18. data/certs/larskanis-2023.pem +24 -0
  19. data/certs/larskanis-2024.pem +24 -0
  20. data/ext/errorcodes.def +1043 -0
  21. data/ext/errorcodes.rb +45 -0
  22. data/ext/errorcodes.txt +494 -0
  23. data/ext/extconf.rb +282 -0
  24. data/ext/gvl_wrappers.c +32 -0
  25. data/ext/gvl_wrappers.h +297 -0
  26. data/ext/pg.c +703 -0
  27. data/ext/pg.h +390 -0
  28. data/ext/pg_binary_decoder.c +460 -0
  29. data/ext/pg_binary_encoder.c +583 -0
  30. data/ext/pg_cancel_connection.c +360 -0
  31. data/ext/pg_coder.c +622 -0
  32. data/ext/pg_connection.c +4869 -0
  33. data/ext/pg_copy_coder.c +921 -0
  34. data/ext/pg_errors.c +95 -0
  35. data/ext/pg_record_coder.c +522 -0
  36. data/ext/pg_result.c +1764 -0
  37. data/ext/pg_text_decoder.c +1008 -0
  38. data/ext/pg_text_encoder.c +833 -0
  39. data/ext/pg_tuple.c +572 -0
  40. data/ext/pg_type_map.c +200 -0
  41. data/ext/pg_type_map_all_strings.c +130 -0
  42. data/ext/pg_type_map_by_class.c +271 -0
  43. data/ext/pg_type_map_by_column.c +355 -0
  44. data/ext/pg_type_map_by_mri_type.c +313 -0
  45. data/ext/pg_type_map_by_oid.c +388 -0
  46. data/ext/pg_type_map_in_ruby.c +333 -0
  47. data/ext/pg_util.c +149 -0
  48. data/ext/pg_util.h +65 -0
  49. data/ext/vc/pg.sln +26 -0
  50. data/ext/vc/pg_18/pg.vcproj +216 -0
  51. data/ext/vc/pg_19/pg_19.vcproj +209 -0
  52. data/lib/2.7/pg_ext.so +0 -0
  53. data/lib/3.0/pg_ext.so +0 -0
  54. data/lib/3.1/pg_ext.so +0 -0
  55. data/lib/3.2/pg_ext.so +0 -0
  56. data/lib/3.3/pg_ext.so +0 -0
  57. data/lib/pg/basic_type_map_based_on_result.rb +67 -0
  58. data/lib/pg/basic_type_map_for_queries.rb +202 -0
  59. data/lib/pg/basic_type_map_for_results.rb +104 -0
  60. data/lib/pg/basic_type_registry.rb +311 -0
  61. data/lib/pg/binary_decoder/date.rb +9 -0
  62. data/lib/pg/binary_decoder/timestamp.rb +26 -0
  63. data/lib/pg/binary_encoder/timestamp.rb +20 -0
  64. data/lib/pg/cancel_connection.rb +30 -0
  65. data/lib/pg/coder.rb +106 -0
  66. data/lib/pg/connection.rb +1027 -0
  67. data/lib/pg/exceptions.rb +31 -0
  68. data/lib/pg/result.rb +43 -0
  69. data/lib/pg/text_decoder/date.rb +21 -0
  70. data/lib/pg/text_decoder/inet.rb +9 -0
  71. data/lib/pg/text_decoder/json.rb +17 -0
  72. data/lib/pg/text_decoder/numeric.rb +9 -0
  73. data/lib/pg/text_decoder/timestamp.rb +30 -0
  74. data/lib/pg/text_encoder/date.rb +13 -0
  75. data/lib/pg/text_encoder/inet.rb +31 -0
  76. data/lib/pg/text_encoder/json.rb +17 -0
  77. data/lib/pg/text_encoder/numeric.rb +9 -0
  78. data/lib/pg/text_encoder/timestamp.rb +24 -0
  79. data/lib/pg/tuple.rb +30 -0
  80. data/lib/pg/type_map_by_column.rb +16 -0
  81. data/lib/pg/version.rb +4 -0
  82. data/lib/pg.rb +144 -0
  83. data/misc/openssl-pg-segfault.rb +31 -0
  84. data/misc/postgres/History.txt +9 -0
  85. data/misc/postgres/Manifest.txt +5 -0
  86. data/misc/postgres/README.txt +21 -0
  87. data/misc/postgres/Rakefile +21 -0
  88. data/misc/postgres/lib/postgres.rb +16 -0
  89. data/misc/ruby-pg/History.txt +9 -0
  90. data/misc/ruby-pg/Manifest.txt +5 -0
  91. data/misc/ruby-pg/README.txt +21 -0
  92. data/misc/ruby-pg/Rakefile +21 -0
  93. data/misc/ruby-pg/lib/ruby/pg.rb +16 -0
  94. data/pg.gemspec +36 -0
  95. data/ports/x86_64-linux/lib/libpq-ruby-pg.so.1 +0 -0
  96. data/rakelib/task_extension.rb +46 -0
  97. data/sample/array_insert.rb +20 -0
  98. data/sample/async_api.rb +102 -0
  99. data/sample/async_copyto.rb +39 -0
  100. data/sample/async_mixed.rb +56 -0
  101. data/sample/check_conn.rb +21 -0
  102. data/sample/copydata.rb +71 -0
  103. data/sample/copyfrom.rb +81 -0
  104. data/sample/copyto.rb +19 -0
  105. data/sample/cursor.rb +21 -0
  106. data/sample/disk_usage_report.rb +177 -0
  107. data/sample/issue-119.rb +94 -0
  108. data/sample/losample.rb +69 -0
  109. data/sample/minimal-testcase.rb +17 -0
  110. data/sample/notify_wait.rb +72 -0
  111. data/sample/pg_statistics.rb +285 -0
  112. data/sample/replication_monitor.rb +222 -0
  113. data/sample/test_binary_values.rb +33 -0
  114. data/sample/wal_shipper.rb +434 -0
  115. data/sample/warehouse_partitions.rb +311 -0
  116. data.tar.gz.sig +0 -0
  117. metadata +252 -0
  118. 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
@@ -0,0 +1,494 @@
1
+ #
2
+ # errcodes.txt
3
+ # PostgreSQL error codes
4
+ #
5
+ # Copyright (c) 2003-2024, 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-table.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
+ 22030 E ERRCODE_DUPLICATE_JSON_OBJECT_KEY_VALUE duplicate_json_object_key_value
210
+ 22031 E ERRCODE_INVALID_ARGUMENT_FOR_SQL_JSON_DATETIME_FUNCTION invalid_argument_for_sql_json_datetime_function
211
+ 22032 E ERRCODE_INVALID_JSON_TEXT invalid_json_text
212
+ 22033 E ERRCODE_INVALID_SQL_JSON_SUBSCRIPT invalid_sql_json_subscript
213
+ 22034 E ERRCODE_MORE_THAN_ONE_SQL_JSON_ITEM more_than_one_sql_json_item
214
+ 22035 E ERRCODE_NO_SQL_JSON_ITEM no_sql_json_item
215
+ 22036 E ERRCODE_NON_NUMERIC_SQL_JSON_ITEM non_numeric_sql_json_item
216
+ 22037 E ERRCODE_NON_UNIQUE_KEYS_IN_A_JSON_OBJECT non_unique_keys_in_a_json_object
217
+ 22038 E ERRCODE_SINGLETON_SQL_JSON_ITEM_REQUIRED singleton_sql_json_item_required
218
+ 22039 E ERRCODE_SQL_JSON_ARRAY_NOT_FOUND sql_json_array_not_found
219
+ 2203A E ERRCODE_SQL_JSON_MEMBER_NOT_FOUND sql_json_member_not_found
220
+ 2203B E ERRCODE_SQL_JSON_NUMBER_NOT_FOUND sql_json_number_not_found
221
+ 2203C E ERRCODE_SQL_JSON_OBJECT_NOT_FOUND sql_json_object_not_found
222
+ 2203D E ERRCODE_TOO_MANY_JSON_ARRAY_ELEMENTS too_many_json_array_elements
223
+ 2203E E ERRCODE_TOO_MANY_JSON_OBJECT_MEMBERS too_many_json_object_members
224
+ 2203F E ERRCODE_SQL_JSON_SCALAR_REQUIRED sql_json_scalar_required
225
+ 2203G E ERRCODE_SQL_JSON_ITEM_CANNOT_BE_CAST_TO_TARGET_TYPE sql_json_item_cannot_be_cast_to_target_type
226
+
227
+ Section: Class 23 - Integrity Constraint Violation
228
+
229
+ 23000 E ERRCODE_INTEGRITY_CONSTRAINT_VIOLATION integrity_constraint_violation
230
+ 23001 E ERRCODE_RESTRICT_VIOLATION restrict_violation
231
+ 23502 E ERRCODE_NOT_NULL_VIOLATION not_null_violation
232
+ 23503 E ERRCODE_FOREIGN_KEY_VIOLATION foreign_key_violation
233
+ 23505 E ERRCODE_UNIQUE_VIOLATION unique_violation
234
+ 23514 E ERRCODE_CHECK_VIOLATION check_violation
235
+ 23P01 E ERRCODE_EXCLUSION_VIOLATION exclusion_violation
236
+
237
+ Section: Class 24 - Invalid Cursor State
238
+
239
+ 24000 E ERRCODE_INVALID_CURSOR_STATE invalid_cursor_state
240
+
241
+ Section: Class 25 - Invalid Transaction State
242
+
243
+ 25000 E ERRCODE_INVALID_TRANSACTION_STATE invalid_transaction_state
244
+ 25001 E ERRCODE_ACTIVE_SQL_TRANSACTION active_sql_transaction
245
+ 25002 E ERRCODE_BRANCH_TRANSACTION_ALREADY_ACTIVE branch_transaction_already_active
246
+ 25008 E ERRCODE_HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL held_cursor_requires_same_isolation_level
247
+ 25003 E ERRCODE_INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION inappropriate_access_mode_for_branch_transaction
248
+ 25004 E ERRCODE_INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION inappropriate_isolation_level_for_branch_transaction
249
+ 25005 E ERRCODE_NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION no_active_sql_transaction_for_branch_transaction
250
+ 25006 E ERRCODE_READ_ONLY_SQL_TRANSACTION read_only_sql_transaction
251
+ 25007 E ERRCODE_SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED schema_and_data_statement_mixing_not_supported
252
+ 25P01 E ERRCODE_NO_ACTIVE_SQL_TRANSACTION no_active_sql_transaction
253
+ 25P02 E ERRCODE_IN_FAILED_SQL_TRANSACTION in_failed_sql_transaction
254
+ 25P03 E ERRCODE_IDLE_IN_TRANSACTION_SESSION_TIMEOUT idle_in_transaction_session_timeout
255
+ 25P04 E ERRCODE_TRANSACTION_TIMEOUT transaction_timeout
256
+
257
+ Section: Class 26 - Invalid SQL Statement Name
258
+
259
+ # (we take this to mean prepared statements
260
+ 26000 E ERRCODE_INVALID_SQL_STATEMENT_NAME invalid_sql_statement_name
261
+
262
+ Section: Class 27 - Triggered Data Change Violation
263
+
264
+ 27000 E ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION triggered_data_change_violation
265
+
266
+ Section: Class 28 - Invalid Authorization Specification
267
+
268
+ 28000 E ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION invalid_authorization_specification
269
+ 28P01 E ERRCODE_INVALID_PASSWORD invalid_password
270
+
271
+ Section: Class 2B - Dependent Privilege Descriptors Still Exist
272
+
273
+ 2B000 E ERRCODE_DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST dependent_privilege_descriptors_still_exist
274
+ 2BP01 E ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST dependent_objects_still_exist
275
+
276
+ Section: Class 2D - Invalid Transaction Termination
277
+
278
+ 2D000 E ERRCODE_INVALID_TRANSACTION_TERMINATION invalid_transaction_termination
279
+
280
+ Section: Class 2F - SQL Routine Exception
281
+
282
+ 2F000 E ERRCODE_SQL_ROUTINE_EXCEPTION sql_routine_exception
283
+ 2F005 E ERRCODE_S_R_E_FUNCTION_EXECUTED_NO_RETURN_STATEMENT function_executed_no_return_statement
284
+ 2F002 E ERRCODE_S_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED modifying_sql_data_not_permitted
285
+ 2F003 E ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED prohibited_sql_statement_attempted
286
+ 2F004 E ERRCODE_S_R_E_READING_SQL_DATA_NOT_PERMITTED reading_sql_data_not_permitted
287
+
288
+ Section: Class 34 - Invalid Cursor Name
289
+
290
+ 34000 E ERRCODE_INVALID_CURSOR_NAME invalid_cursor_name
291
+
292
+ Section: Class 38 - External Routine Exception
293
+
294
+ 38000 E ERRCODE_EXTERNAL_ROUTINE_EXCEPTION external_routine_exception
295
+ 38001 E ERRCODE_E_R_E_CONTAINING_SQL_NOT_PERMITTED containing_sql_not_permitted
296
+ 38002 E ERRCODE_E_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED modifying_sql_data_not_permitted
297
+ 38003 E ERRCODE_E_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED prohibited_sql_statement_attempted
298
+ 38004 E ERRCODE_E_R_E_READING_SQL_DATA_NOT_PERMITTED reading_sql_data_not_permitted
299
+
300
+ Section: Class 39 - External Routine Invocation Exception
301
+
302
+ 39000 E ERRCODE_EXTERNAL_ROUTINE_INVOCATION_EXCEPTION external_routine_invocation_exception
303
+ 39001 E ERRCODE_E_R_I_E_INVALID_SQLSTATE_RETURNED invalid_sqlstate_returned
304
+ 39004 E ERRCODE_E_R_I_E_NULL_VALUE_NOT_ALLOWED null_value_not_allowed
305
+ 39P01 E ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED trigger_protocol_violated
306
+ 39P02 E ERRCODE_E_R_I_E_SRF_PROTOCOL_VIOLATED srf_protocol_violated
307
+ 39P03 E ERRCODE_E_R_I_E_EVENT_TRIGGER_PROTOCOL_VIOLATED event_trigger_protocol_violated
308
+
309
+ Section: Class 3B - Savepoint Exception
310
+
311
+ 3B000 E ERRCODE_SAVEPOINT_EXCEPTION savepoint_exception
312
+ 3B001 E ERRCODE_S_E_INVALID_SPECIFICATION invalid_savepoint_specification
313
+
314
+ Section: Class 3D - Invalid Catalog Name
315
+
316
+ 3D000 E ERRCODE_INVALID_CATALOG_NAME invalid_catalog_name
317
+
318
+ Section: Class 3F - Invalid Schema Name
319
+
320
+ 3F000 E ERRCODE_INVALID_SCHEMA_NAME invalid_schema_name
321
+
322
+ Section: Class 40 - Transaction Rollback
323
+
324
+ 40000 E ERRCODE_TRANSACTION_ROLLBACK transaction_rollback
325
+ 40002 E ERRCODE_T_R_INTEGRITY_CONSTRAINT_VIOLATION transaction_integrity_constraint_violation
326
+ 40001 E ERRCODE_T_R_SERIALIZATION_FAILURE serialization_failure
327
+ 40003 E ERRCODE_T_R_STATEMENT_COMPLETION_UNKNOWN statement_completion_unknown
328
+ 40P01 E ERRCODE_T_R_DEADLOCK_DETECTED deadlock_detected
329
+
330
+ Section: Class 42 - Syntax Error or Access Rule Violation
331
+
332
+ 42000 E ERRCODE_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION syntax_error_or_access_rule_violation
333
+ # never use the above; use one of these two if no specific code exists:
334
+ 42601 E ERRCODE_SYNTAX_ERROR syntax_error
335
+ 42501 E ERRCODE_INSUFFICIENT_PRIVILEGE insufficient_privilege
336
+ 42846 E ERRCODE_CANNOT_COERCE cannot_coerce
337
+ 42803 E ERRCODE_GROUPING_ERROR grouping_error
338
+ 42P20 E ERRCODE_WINDOWING_ERROR windowing_error
339
+ 42P19 E ERRCODE_INVALID_RECURSION invalid_recursion
340
+ 42830 E ERRCODE_INVALID_FOREIGN_KEY invalid_foreign_key
341
+ 42602 E ERRCODE_INVALID_NAME invalid_name
342
+ 42622 E ERRCODE_NAME_TOO_LONG name_too_long
343
+ 42939 E ERRCODE_RESERVED_NAME reserved_name
344
+ 42804 E ERRCODE_DATATYPE_MISMATCH datatype_mismatch
345
+ 42P18 E ERRCODE_INDETERMINATE_DATATYPE indeterminate_datatype
346
+ 42P21 E ERRCODE_COLLATION_MISMATCH collation_mismatch
347
+ 42P22 E ERRCODE_INDETERMINATE_COLLATION indeterminate_collation
348
+ 42809 E ERRCODE_WRONG_OBJECT_TYPE wrong_object_type
349
+ 428C9 E ERRCODE_GENERATED_ALWAYS generated_always
350
+
351
+ # Note: for ERRCODE purposes, we divide namable objects into these categories:
352
+ # databases, schemas, prepared statements, cursors, tables, columns,
353
+ # functions (including operators), and all else (lumped as "objects").
354
+ # (The first four categories are mandated by the existence of separate
355
+ # SQLSTATE classes for them in the spec; in this file, however, we group
356
+ # the ERRCODE names with all the rest under class 42.) Parameters are
357
+ # sort-of-named objects and get their own ERRCODE.
358
+ #
359
+ # The same breakdown is used for "duplicate" and "ambiguous" complaints,
360
+ # as well as complaints associated with incorrect declarations.
361
+
362
+ 42703 E ERRCODE_UNDEFINED_COLUMN undefined_column
363
+ 34000 E ERRCODE_UNDEFINED_CURSOR
364
+ 3D000 E ERRCODE_UNDEFINED_DATABASE
365
+ 42883 E ERRCODE_UNDEFINED_FUNCTION undefined_function
366
+ 26000 E ERRCODE_UNDEFINED_PSTATEMENT
367
+ 3F000 E ERRCODE_UNDEFINED_SCHEMA
368
+ 42P01 E ERRCODE_UNDEFINED_TABLE undefined_table
369
+ 42P02 E ERRCODE_UNDEFINED_PARAMETER undefined_parameter
370
+ 42704 E ERRCODE_UNDEFINED_OBJECT undefined_object
371
+ 42701 E ERRCODE_DUPLICATE_COLUMN duplicate_column
372
+ 42P03 E ERRCODE_DUPLICATE_CURSOR duplicate_cursor
373
+ 42P04 E ERRCODE_DUPLICATE_DATABASE duplicate_database
374
+ 42723 E ERRCODE_DUPLICATE_FUNCTION duplicate_function
375
+ 42P05 E ERRCODE_DUPLICATE_PSTATEMENT duplicate_prepared_statement
376
+ 42P06 E ERRCODE_DUPLICATE_SCHEMA duplicate_schema
377
+ 42P07 E ERRCODE_DUPLICATE_TABLE duplicate_table
378
+ 42712 E ERRCODE_DUPLICATE_ALIAS duplicate_alias
379
+ 42710 E ERRCODE_DUPLICATE_OBJECT duplicate_object
380
+ 42702 E ERRCODE_AMBIGUOUS_COLUMN ambiguous_column
381
+ 42725 E ERRCODE_AMBIGUOUS_FUNCTION ambiguous_function
382
+ 42P08 E ERRCODE_AMBIGUOUS_PARAMETER ambiguous_parameter
383
+ 42P09 E ERRCODE_AMBIGUOUS_ALIAS ambiguous_alias
384
+ 42P10 E ERRCODE_INVALID_COLUMN_REFERENCE invalid_column_reference
385
+ 42611 E ERRCODE_INVALID_COLUMN_DEFINITION invalid_column_definition
386
+ 42P11 E ERRCODE_INVALID_CURSOR_DEFINITION invalid_cursor_definition
387
+ 42P12 E ERRCODE_INVALID_DATABASE_DEFINITION invalid_database_definition
388
+ 42P13 E ERRCODE_INVALID_FUNCTION_DEFINITION invalid_function_definition
389
+ 42P14 E ERRCODE_INVALID_PSTATEMENT_DEFINITION invalid_prepared_statement_definition
390
+ 42P15 E ERRCODE_INVALID_SCHEMA_DEFINITION invalid_schema_definition
391
+ 42P16 E ERRCODE_INVALID_TABLE_DEFINITION invalid_table_definition
392
+ 42P17 E ERRCODE_INVALID_OBJECT_DEFINITION invalid_object_definition
393
+
394
+ Section: Class 44 - WITH CHECK OPTION Violation
395
+
396
+ 44000 E ERRCODE_WITH_CHECK_OPTION_VIOLATION with_check_option_violation
397
+
398
+ Section: Class 53 - Insufficient Resources
399
+
400
+ # (PostgreSQL-specific error class)
401
+ 53000 E ERRCODE_INSUFFICIENT_RESOURCES insufficient_resources
402
+ 53100 E ERRCODE_DISK_FULL disk_full
403
+ 53200 E ERRCODE_OUT_OF_MEMORY out_of_memory
404
+ 53300 E ERRCODE_TOO_MANY_CONNECTIONS too_many_connections
405
+ 53400 E ERRCODE_CONFIGURATION_LIMIT_EXCEEDED configuration_limit_exceeded
406
+
407
+ Section: Class 54 - Program Limit Exceeded
408
+
409
+ # this is for wired-in limits, not resource exhaustion problems (class borrowed from DB2)
410
+ 54000 E ERRCODE_PROGRAM_LIMIT_EXCEEDED program_limit_exceeded
411
+ 54001 E ERRCODE_STATEMENT_TOO_COMPLEX statement_too_complex
412
+ 54011 E ERRCODE_TOO_MANY_COLUMNS too_many_columns
413
+ 54023 E ERRCODE_TOO_MANY_ARGUMENTS too_many_arguments
414
+
415
+ Section: Class 55 - Object Not In Prerequisite State
416
+
417
+ # (class borrowed from DB2)
418
+ 55000 E ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE object_not_in_prerequisite_state
419
+ 55006 E ERRCODE_OBJECT_IN_USE object_in_use
420
+ 55P02 E ERRCODE_CANT_CHANGE_RUNTIME_PARAM cant_change_runtime_param
421
+ 55P03 E ERRCODE_LOCK_NOT_AVAILABLE lock_not_available
422
+ 55P04 E ERRCODE_UNSAFE_NEW_ENUM_VALUE_USAGE unsafe_new_enum_value_usage
423
+
424
+ Section: Class 57 - Operator Intervention
425
+
426
+ # (class borrowed from DB2)
427
+ 57000 E ERRCODE_OPERATOR_INTERVENTION operator_intervention
428
+ 57014 E ERRCODE_QUERY_CANCELED query_canceled
429
+ 57P01 E ERRCODE_ADMIN_SHUTDOWN admin_shutdown
430
+ 57P02 E ERRCODE_CRASH_SHUTDOWN crash_shutdown
431
+ 57P03 E ERRCODE_CANNOT_CONNECT_NOW cannot_connect_now
432
+ 57P04 E ERRCODE_DATABASE_DROPPED database_dropped
433
+ 57P05 E ERRCODE_IDLE_SESSION_TIMEOUT idle_session_timeout
434
+
435
+ Section: Class 58 - System Error (errors external to PostgreSQL itself)
436
+
437
+ # (class borrowed from DB2)
438
+ 58000 E ERRCODE_SYSTEM_ERROR system_error
439
+ 58030 E ERRCODE_IO_ERROR io_error
440
+ 58P01 E ERRCODE_UNDEFINED_FILE undefined_file
441
+ 58P02 E ERRCODE_DUPLICATE_FILE duplicate_file
442
+
443
+ Section: Class F0 - Configuration File Error
444
+
445
+ # (PostgreSQL-specific error class)
446
+ F0000 E ERRCODE_CONFIG_FILE_ERROR config_file_error
447
+ F0001 E ERRCODE_LOCK_FILE_EXISTS lock_file_exists
448
+
449
+ Section: Class HV - Foreign Data Wrapper Error (SQL/MED)
450
+
451
+ # (SQL/MED-specific error class)
452
+ HV000 E ERRCODE_FDW_ERROR fdw_error
453
+ HV005 E ERRCODE_FDW_COLUMN_NAME_NOT_FOUND fdw_column_name_not_found
454
+ HV002 E ERRCODE_FDW_DYNAMIC_PARAMETER_VALUE_NEEDED fdw_dynamic_parameter_value_needed
455
+ HV010 E ERRCODE_FDW_FUNCTION_SEQUENCE_ERROR fdw_function_sequence_error
456
+ HV021 E ERRCODE_FDW_INCONSISTENT_DESCRIPTOR_INFORMATION fdw_inconsistent_descriptor_information
457
+ HV024 E ERRCODE_FDW_INVALID_ATTRIBUTE_VALUE fdw_invalid_attribute_value
458
+ HV007 E ERRCODE_FDW_INVALID_COLUMN_NAME fdw_invalid_column_name
459
+ HV008 E ERRCODE_FDW_INVALID_COLUMN_NUMBER fdw_invalid_column_number
460
+ HV004 E ERRCODE_FDW_INVALID_DATA_TYPE fdw_invalid_data_type
461
+ HV006 E ERRCODE_FDW_INVALID_DATA_TYPE_DESCRIPTORS fdw_invalid_data_type_descriptors
462
+ HV091 E ERRCODE_FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER fdw_invalid_descriptor_field_identifier
463
+ HV00B E ERRCODE_FDW_INVALID_HANDLE fdw_invalid_handle
464
+ HV00C E ERRCODE_FDW_INVALID_OPTION_INDEX fdw_invalid_option_index
465
+ HV00D E ERRCODE_FDW_INVALID_OPTION_NAME fdw_invalid_option_name
466
+ HV090 E ERRCODE_FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH fdw_invalid_string_length_or_buffer_length
467
+ HV00A E ERRCODE_FDW_INVALID_STRING_FORMAT fdw_invalid_string_format
468
+ HV009 E ERRCODE_FDW_INVALID_USE_OF_NULL_POINTER fdw_invalid_use_of_null_pointer
469
+ HV014 E ERRCODE_FDW_TOO_MANY_HANDLES fdw_too_many_handles
470
+ HV001 E ERRCODE_FDW_OUT_OF_MEMORY fdw_out_of_memory
471
+ HV00P E ERRCODE_FDW_NO_SCHEMAS fdw_no_schemas
472
+ HV00J E ERRCODE_FDW_OPTION_NAME_NOT_FOUND fdw_option_name_not_found
473
+ HV00K E ERRCODE_FDW_REPLY_HANDLE fdw_reply_handle
474
+ HV00Q E ERRCODE_FDW_SCHEMA_NOT_FOUND fdw_schema_not_found
475
+ HV00R E ERRCODE_FDW_TABLE_NOT_FOUND fdw_table_not_found
476
+ HV00L E ERRCODE_FDW_UNABLE_TO_CREATE_EXECUTION fdw_unable_to_create_execution
477
+ HV00M E ERRCODE_FDW_UNABLE_TO_CREATE_REPLY fdw_unable_to_create_reply
478
+ HV00N E ERRCODE_FDW_UNABLE_TO_ESTABLISH_CONNECTION fdw_unable_to_establish_connection
479
+
480
+ Section: Class P0 - PL/pgSQL Error
481
+
482
+ # (PostgreSQL-specific error class)
483
+ P0000 E ERRCODE_PLPGSQL_ERROR plpgsql_error
484
+ P0001 E ERRCODE_RAISE_EXCEPTION raise_exception
485
+ P0002 E ERRCODE_NO_DATA_FOUND no_data_found
486
+ P0003 E ERRCODE_TOO_MANY_ROWS too_many_rows
487
+ P0004 E ERRCODE_ASSERT_FAILURE assert_failure
488
+
489
+ Section: Class XX - Internal Error
490
+
491
+ # this is for "can't-happen" conditions and software bugs (PostgreSQL-specific error class)
492
+ XX000 E ERRCODE_INTERNAL_ERROR internal_error
493
+ XX001 E ERRCODE_DATA_CORRUPTED data_corrupted
494
+ XX002 E ERRCODE_INDEX_CORRUPTED index_corrupted