1const PLPGSQL_CONDITION_SQLSTATES: &[(&str, &str)] = &[
13 ("sql_statement_not_yet_complete", "03000"),
14 ("connection_exception", "08000"),
15 ("connection_does_not_exist", "08003"),
16 ("connection_failure", "08006"),
17 ("sqlclient_unable_to_establish_sqlconnection", "08001"),
18 ("sqlserver_rejected_establishment_of_sqlconnection", "08004"),
19 ("transaction_resolution_unknown", "08007"),
20 ("protocol_violation", "08P01"),
21 ("triggered_action_exception", "09000"),
22 ("feature_not_supported", "0A000"),
23 ("invalid_transaction_initiation", "0B000"),
24 ("locator_exception", "0F000"),
25 ("invalid_locator_specification", "0F001"),
26 ("invalid_grantor", "0L000"),
27 ("invalid_grant_operation", "0LP01"),
28 ("invalid_role_specification", "0P000"),
29 ("diagnostics_exception", "0Z000"),
30 (
31 "stacked_diagnostics_accessed_without_active_handler",
32 "0Z002",
33 ),
34 ("case_not_found", "20000"),
35 ("cardinality_violation", "21000"),
36 ("data_exception", "22000"),
37 ("array_subscript_error", "2202E"),
38 ("character_not_in_repertoire", "22021"),
39 ("datetime_field_overflow", "22008"),
40 ("division_by_zero", "22012"),
41 ("error_in_assignment", "22005"),
42 ("escape_character_conflict", "2200B"),
43 ("indicator_overflow", "22022"),
44 ("interval_field_overflow", "22015"),
45 ("invalid_argument_for_logarithm", "2201E"),
46 ("invalid_argument_for_ntile_function", "22014"),
47 ("invalid_argument_for_nth_value_function", "22016"),
48 ("invalid_argument_for_power_function", "2201F"),
49 ("invalid_argument_for_width_bucket_function", "2201G"),
50 ("invalid_character_value_for_cast", "22018"),
51 ("invalid_datetime_format", "22007"),
52 ("invalid_escape_character", "22019"),
53 ("invalid_escape_octet", "2200D"),
54 ("invalid_escape_sequence", "22025"),
55 ("nonstandard_use_of_escape_character", "22P06"),
56 ("invalid_indicator_parameter_value", "22010"),
57 ("invalid_parameter_value", "22023"),
58 ("invalid_preceding_or_following_size", "22013"),
59 ("invalid_regular_expression", "2201B"),
60 ("invalid_row_count_in_limit_clause", "2201W"),
61 ("invalid_row_count_in_result_offset_clause", "2201X"),
62 ("invalid_tablesample_argument", "2202H"),
63 ("invalid_tablesample_repeat", "2202G"),
64 ("invalid_time_zone_displacement_value", "22009"),
65 ("invalid_use_of_escape_character", "2200C"),
66 ("most_specific_type_mismatch", "2200G"),
67 ("null_value_not_allowed", "22004"),
68 ("null_value_no_indicator_parameter", "22002"),
69 ("numeric_value_out_of_range", "22003"),
70 ("sequence_generator_limit_exceeded", "2200H"),
71 ("string_data_length_mismatch", "22026"),
72 ("string_data_right_truncation", "22001"),
73 ("substring_error", "22011"),
74 ("trim_error", "22027"),
75 ("unterminated_c_string", "22024"),
76 ("zero_length_character_string", "2200F"),
77 ("floating_point_exception", "22P01"),
78 ("invalid_text_representation", "22P02"),
79 ("invalid_binary_representation", "22P03"),
80 ("bad_copy_file_format", "22P04"),
81 ("untranslatable_character", "22P05"),
82 ("not_an_xml_document", "2200L"),
83 ("invalid_xml_document", "2200M"),
84 ("invalid_xml_content", "2200N"),
85 ("invalid_xml_comment", "2200S"),
86 ("invalid_xml_processing_instruction", "2200T"),
87 ("duplicate_json_object_key_value", "22030"),
88 ("invalid_argument_for_sql_json_datetime_function", "22031"),
89 ("invalid_json_text", "22032"),
90 ("invalid_sql_json_subscript", "22033"),
91 ("more_than_one_sql_json_item", "22034"),
92 ("no_sql_json_item", "22035"),
93 ("non_numeric_sql_json_item", "22036"),
94 ("non_unique_keys_in_a_json_object", "22037"),
95 ("singleton_sql_json_item_required", "22038"),
96 ("sql_json_array_not_found", "22039"),
97 ("sql_json_member_not_found", "2203A"),
98 ("sql_json_number_not_found", "2203B"),
99 ("sql_json_object_not_found", "2203C"),
100 ("too_many_json_array_elements", "2203D"),
101 ("too_many_json_object_members", "2203E"),
102 ("sql_json_scalar_required", "2203F"),
103 ("sql_json_item_cannot_be_cast_to_target_type", "2203G"),
104 ("integrity_constraint_violation", "23000"),
105 ("restrict_violation", "23001"),
106 ("not_null_violation", "23502"),
107 ("foreign_key_violation", "23503"),
108 ("unique_violation", "23505"),
109 ("check_violation", "23514"),
110 ("exclusion_violation", "23P01"),
111 ("invalid_cursor_state", "24000"),
112 ("invalid_transaction_state", "25000"),
113 ("active_sql_transaction", "25001"),
114 ("branch_transaction_already_active", "25002"),
115 ("held_cursor_requires_same_isolation_level", "25008"),
116 ("inappropriate_access_mode_for_branch_transaction", "25003"),
117 (
118 "inappropriate_isolation_level_for_branch_transaction",
119 "25004",
120 ),
121 ("no_active_sql_transaction_for_branch_transaction", "25005"),
122 ("read_only_sql_transaction", "25006"),
123 ("schema_and_data_statement_mixing_not_supported", "25007"),
124 ("no_active_sql_transaction", "25P01"),
125 ("in_failed_sql_transaction", "25P02"),
126 ("idle_in_transaction_session_timeout", "25P03"),
127 ("transaction_timeout", "25P04"),
128 ("invalid_sql_statement_name", "26000"),
129 ("triggered_data_change_violation", "27000"),
130 ("invalid_authorization_specification", "28000"),
131 ("invalid_password", "28P01"),
132 ("dependent_privilege_descriptors_still_exist", "2B000"),
133 ("dependent_objects_still_exist", "2BP01"),
134 ("invalid_transaction_termination", "2D000"),
135 ("sql_routine_exception", "2F000"),
136 ("function_executed_no_return_statement", "2F005"),
137 ("modifying_sql_data_not_permitted", "2F002"),
138 ("prohibited_sql_statement_attempted", "2F003"),
139 ("reading_sql_data_not_permitted", "2F004"),
140 ("invalid_cursor_name", "34000"),
141 ("external_routine_exception", "38000"),
142 ("containing_sql_not_permitted", "38001"),
143 ("modifying_sql_data_not_permitted", "38002"),
144 ("prohibited_sql_statement_attempted", "38003"),
145 ("reading_sql_data_not_permitted", "38004"),
146 ("external_routine_invocation_exception", "39000"),
147 ("invalid_sqlstate_returned", "39001"),
148 ("null_value_not_allowed", "39004"),
149 ("trigger_protocol_violated", "39P01"),
150 ("srf_protocol_violated", "39P02"),
151 ("event_trigger_protocol_violated", "39P03"),
152 ("savepoint_exception", "3B000"),
153 ("invalid_savepoint_specification", "3B001"),
154 ("invalid_catalog_name", "3D000"),
155 ("invalid_schema_name", "3F000"),
156 ("transaction_rollback", "40000"),
157 ("transaction_integrity_constraint_violation", "40002"),
158 ("serialization_failure", "40001"),
159 ("statement_completion_unknown", "40003"),
160 ("deadlock_detected", "40P01"),
161 ("syntax_error_or_access_rule_violation", "42000"),
162 ("syntax_error", "42601"),
163 ("insufficient_privilege", "42501"),
164 ("cannot_coerce", "42846"),
165 ("grouping_error", "42803"),
166 ("windowing_error", "42P20"),
167 ("invalid_recursion", "42P19"),
168 ("invalid_foreign_key", "42830"),
169 ("invalid_name", "42602"),
170 ("name_too_long", "42622"),
171 ("reserved_name", "42939"),
172 ("datatype_mismatch", "42804"),
173 ("indeterminate_datatype", "42P18"),
174 ("collation_mismatch", "42P21"),
175 ("indeterminate_collation", "42P22"),
176 ("wrong_object_type", "42809"),
177 ("generated_always", "428C9"),
178 ("undefined_column", "42703"),
179 ("undefined_function", "42883"),
180 ("undefined_table", "42P01"),
181 ("undefined_parameter", "42P02"),
182 ("undefined_object", "42704"),
183 ("duplicate_column", "42701"),
184 ("duplicate_cursor", "42P03"),
185 ("duplicate_database", "42P04"),
186 ("duplicate_function", "42723"),
187 ("duplicate_prepared_statement", "42P05"),
188 ("duplicate_schema", "42P06"),
189 ("duplicate_table", "42P07"),
190 ("duplicate_alias", "42712"),
191 ("duplicate_object", "42710"),
192 ("ambiguous_column", "42702"),
193 ("ambiguous_function", "42725"),
194 ("ambiguous_parameter", "42P08"),
195 ("ambiguous_alias", "42P09"),
196 ("invalid_column_reference", "42P10"),
197 ("invalid_column_definition", "42611"),
198 ("invalid_cursor_definition", "42P11"),
199 ("invalid_database_definition", "42P12"),
200 ("invalid_function_definition", "42P13"),
201 ("invalid_prepared_statement_definition", "42P14"),
202 ("invalid_schema_definition", "42P15"),
203 ("invalid_table_definition", "42P16"),
204 ("invalid_object_definition", "42P17"),
205 ("with_check_option_violation", "44000"),
206 ("insufficient_resources", "53000"),
207 ("disk_full", "53100"),
208 ("out_of_memory", "53200"),
209 ("too_many_connections", "53300"),
210 ("configuration_limit_exceeded", "53400"),
211 ("program_limit_exceeded", "54000"),
212 ("statement_too_complex", "54001"),
213 ("too_many_columns", "54011"),
214 ("too_many_arguments", "54023"),
215 ("object_not_in_prerequisite_state", "55000"),
216 ("object_in_use", "55006"),
217 ("cant_change_runtime_param", "55P02"),
218 ("lock_not_available", "55P03"),
219 ("unsafe_new_enum_value_usage", "55P04"),
220 ("operator_intervention", "57000"),
221 ("query_canceled", "57014"),
222 ("admin_shutdown", "57P01"),
223 ("crash_shutdown", "57P02"),
224 ("cannot_connect_now", "57P03"),
225 ("database_dropped", "57P04"),
226 ("idle_session_timeout", "57P05"),
227 ("system_error", "58000"),
228 ("io_error", "58030"),
229 ("undefined_file", "58P01"),
230 ("duplicate_file", "58P02"),
231 ("config_file_error", "F0000"),
232 ("lock_file_exists", "F0001"),
233 ("fdw_error", "HV000"),
234 ("fdw_column_name_not_found", "HV005"),
235 ("fdw_dynamic_parameter_value_needed", "HV002"),
236 ("fdw_function_sequence_error", "HV010"),
237 ("fdw_inconsistent_descriptor_information", "HV021"),
238 ("fdw_invalid_attribute_value", "HV024"),
239 ("fdw_invalid_column_name", "HV007"),
240 ("fdw_invalid_column_number", "HV008"),
241 ("fdw_invalid_data_type", "HV004"),
242 ("fdw_invalid_data_type_descriptors", "HV006"),
243 ("fdw_invalid_descriptor_field_identifier", "HV091"),
244 ("fdw_invalid_handle", "HV00B"),
245 ("fdw_invalid_option_index", "HV00C"),
246 ("fdw_invalid_option_name", "HV00D"),
247 ("fdw_invalid_string_length_or_buffer_length", "HV090"),
248 ("fdw_invalid_string_format", "HV00A"),
249 ("fdw_invalid_use_of_null_pointer", "HV009"),
250 ("fdw_too_many_handles", "HV014"),
251 ("fdw_out_of_memory", "HV001"),
252 ("fdw_no_schemas", "HV00P"),
253 ("fdw_option_name_not_found", "HV00J"),
254 ("fdw_reply_handle", "HV00K"),
255 ("fdw_schema_not_found", "HV00Q"),
256 ("fdw_table_not_found", "HV00R"),
257 ("fdw_unable_to_create_execution", "HV00L"),
258 ("fdw_unable_to_create_reply", "HV00M"),
259 ("fdw_unable_to_establish_connection", "HV00N"),
260 ("plpgsql_error", "P0000"),
261 ("raise_exception", "P0001"),
262 ("no_data_found", "P0002"),
263 ("too_many_rows", "P0003"),
264 ("assert_failure", "P0004"),
265 ("internal_error", "XX000"),
266 ("data_corrupted", "XX001"),
267 ("index_corrupted", "XX002"),
268];
269
270pub fn condition_sqlstate(name: &str) -> Option<&'static str> {
273 PLPGSQL_CONDITION_SQLSTATES
274 .iter()
275 .find(|(condition, _)| *condition == name)
276 .map(|(_, state)| *state)
277}
278
279pub fn condition_sqlstates(name: &str) -> impl Iterator<Item = &'static str> + '_ {
281 PLPGSQL_CONDITION_SQLSTATES
282 .iter()
283 .filter(move |(condition, _)| *condition == name)
284 .map(|(_, state)| *state)
285}