CartoDB-SQL-API/lib/postgresql/error-codes.js

290 lines
11 KiB
JavaScript
Raw Normal View History

2018-10-24 21:42:33 +08:00
'use strict';
var _ = require('underscore');
// reference http://www.postgresql.org/docs/9.3/static/errcodes-appendix.html
// Used `^([A-Z0-9]*)\s(.*)` -> `"$1": "$2"` to create the JS object
var codeToCondition = {
// Class 00 — Successful Completion
2019-12-24 01:19:08 +08:00
'00000': 'successful_completion',
// Class 01 — Warning
'01000': 'warning',
'0100C': 'dynamic_result_sets_returned',
'01008': 'implicit_zero_bit_padding',
'01003': 'null_value_eliminated_in_set_function',
'01007': 'privilege_not_granted',
'01006': 'privilege_not_revoked',
'01004': 'string_data_right_truncation',
'01P01': 'deprecated_feature',
// Class 02 — No Data (this is also a warning class per the SQL standard)
'02000': 'no_data',
'02001': 'no_additional_dynamic_result_sets_returned',
// Class 03 — SQL Statement Not Yet Complete
'03000': 'sql_statement_not_yet_complete',
// Class 08 — Connection Exception
'08000': 'connection_exception',
'08003': 'connection_does_not_exist',
'08006': 'connection_failure',
'08001': 'sqlclient_unable_to_establish_sqlconnection',
'08004': 'sqlserver_rejected_establishment_of_sqlconnection',
'08007': 'transaction_resolution_unknown',
'08P01': 'protocol_violation',
// Class 09 — Triggered Action Exception
'09000': 'triggered_action_exception',
// Class 0A — Feature Not Supported
'0A000': 'feature_not_supported',
// Class 0B — Invalid Transaction Initiation
'0B000': 'invalid_transaction_initiation',
// Class 0F — Locator Exception
'0F000': 'locator_exception',
'0F001': 'invalid_locator_specification',
// Class 0L — Invalid Grantor
'0L000': 'invalid_grantor',
'0LP01': 'invalid_grant_operation',
// Class 0P — Invalid Role Specification
'0P000': 'invalid_role_specification',
// Class 0Z — Diagnostics Exception
'0Z000': 'diagnostics_exception',
'0Z002': 'stacked_diagnostics_accessed_without_active_handler',
// Class 20 — Case Not Found
20000: 'case_not_found',
// Class 21 — Cardinality Violation
21000: 'cardinality_violation',
// Class 22 — Data Exception
22000: 'data_exception',
'2202E': 'array_subscript_error',
22021: 'character_not_in_repertoire',
22008: 'datetime_field_overflow',
22012: 'division_by_zero',
22005: 'error_in_assignment',
'2200B': 'escape_character_conflict',
22022: 'indicator_overflow',
22015: 'interval_field_overflow',
'2201E': 'invalid_argument_for_logarithm',
22014: 'invalid_argument_for_ntile_function',
22016: 'invalid_argument_for_nth_value_function',
'2201F': 'invalid_argument_for_power_function',
'2201G': 'invalid_argument_for_width_bucket_function',
22018: 'invalid_character_value_for_cast',
22007: 'invalid_datetime_format',
22019: 'invalid_escape_character',
'2200D': 'invalid_escape_octet',
22025: 'invalid_escape_sequence',
'22P06': 'nonstandard_use_of_escape_character',
22010: 'invalid_indicator_parameter_value',
22023: 'invalid_parameter_value',
'2201B': 'invalid_regular_expression',
'2201W': 'invalid_row_count_in_limit_clause',
'2201X': 'invalid_row_count_in_result_offset_clause',
22009: 'invalid_time_zone_displacement_value',
'2200C': 'invalid_use_of_escape_character',
'2200G': 'most_specific_type_mismatch',
22004: 'null_value_not_allowed',
22002: 'null_value_no_indicator_parameter',
22003: 'numeric_value_out_of_range',
22026: 'string_data_length_mismatch',
22001: 'string_data_right_truncation',
22011: 'substring_error',
22027: 'trim_error',
22024: 'unterminated_c_string',
'2200F': 'zero_length_character_string',
'22P01': 'floating_point_exception',
'22P02': 'invalid_text_representation',
'22P03': 'invalid_binary_representation',
'22P04': 'bad_copy_file_format',
'22P05': 'untranslatable_character',
'2200L': 'not_an_xml_document',
'2200M': 'invalid_xml_document',
'2200N': 'invalid_xml_content',
'2200S': 'invalid_xml_comment',
'2200T': 'invalid_xml_processing_instruction',
// Class 23 — Integrity Constraint Violation
23000: 'integrity_constraint_violation',
23001: 'restrict_violation',
23502: 'not_null_violation',
23503: 'foreign_key_violation',
23505: 'unique_violation',
23514: 'check_violation',
'23P01': 'exclusion_violation',
// Class 24 — Invalid Cursor State
24000: 'invalid_cursor_state',
// Class 25 — Invalid Transaction State
25000: 'invalid_transaction_state',
25001: 'active_sql_transaction',
25002: 'branch_transaction_already_active',
25008: 'held_cursor_requires_same_isolation_level',
25003: 'inappropriate_access_mode_for_branch_transaction',
25004: 'inappropriate_isolation_level_for_branch_transaction',
25005: 'no_active_sql_transaction_for_branch_transaction',
25006: 'read_only_sql_transaction',
25007: 'schema_and_data_statement_mixing_not_supported',
'25P01': 'no_active_sql_transaction',
'25P02': 'in_failed_sql_transaction',
'25P03': 'idle_in_transaction_session_timeout',
// Class 26 — Invalid SQL Statement Name
26000: 'invalid_sql_statement_name',
// Class 27 — Triggered Data Change Violation
27000: 'triggered_data_change_violation',
// Class 28 — Invalid Authorization Specification
28000: 'invalid_authorization_specification',
'28P01': 'invalid_password',
// Class 2B — Dependent Privilege Descriptors Still Exist
'2B000': 'dependent_privilege_descriptors_still_exist',
'2BP01': 'dependent_objects_still_exist',
// Class 2D — Invalid Transaction Termination
'2D000': 'invalid_transaction_termination',
// Class 2F — SQL Routine Exception
'2F000': 'sql_routine_exception',
'2F005': 'function_executed_no_return_statement',
'2F002': 'modifying_sql_data_not_permitted',
'2F003': 'prohibited_sql_statement_attempted',
'2F004': 'reading_sql_data_not_permitted',
// Class 34 — Invalid Cursor Name
34000: 'invalid_cursor_name',
// Class 38 — External Routine Exception
38000: 'external_routine_exception',
38001: 'containing_sql_not_permitted',
38002: 'modifying_sql_data_not_permitted',
38003: 'prohibited_sql_statement_attempted',
38004: 'reading_sql_data_not_permitted',
// Class 39 — External Routine Invocation Exception
39000: 'external_routine_invocation_exception',
39001: 'invalid_sqlstate_returned',
39004: 'null_value_not_allowed',
'39P01': 'trigger_protocol_violated',
'39P02': 'srf_protocol_violated',
'39P03': 'event_trigger_protocol_violated',
// Class 3B — Savepoint Exception
'3B000': 'savepoint_exception',
'3B001': 'invalid_savepoint_specification',
// Class 3D — Invalid Catalog Name
'3D000': 'invalid_catalog_name',
// Class 3F — Invalid Schema Name
'3F000': 'invalid_schema_name',
// Class 40 — Transaction Rollback
40000: 'transaction_rollback',
40002: 'transaction_integrity_constraint_violation',
40001: 'serialization_failure',
40003: 'statement_completion_unknown',
'40P01': 'deadlock_detected',
// Class 42 — Syntax Error or Access Rule Violation
42000: 'syntax_error_or_access_rule_violation',
42601: 'syntax_error',
42501: 'insufficient_privilege',
42846: 'cannot_coerce',
42803: 'grouping_error',
'42P20': 'windowing_error',
'42P19': 'invalid_recursion',
42830: 'invalid_foreign_key',
42602: 'invalid_name',
42622: 'name_too_long',
42939: 'reserved_name',
42804: 'datatype_mismatch',
'42P18': 'indeterminate_datatype',
'42P21': 'collation_mismatch',
'42P22': 'indeterminate_collation',
42809: 'wrong_object_type',
'428C9': 'generated_always',
42703: 'undefined_column',
42883: 'undefined_function',
'42P01': 'undefined_table',
'42P02': 'undefined_parameter',
42704: 'undefined_object',
42701: 'duplicate_column',
'42P03': 'duplicate_cursor',
'42P04': 'duplicate_database',
42723: 'duplicate_function',
'42P05': 'duplicate_prepared_statement',
'42P06': 'duplicate_schema',
'42P07': 'duplicate_table',
42712: 'duplicate_alias',
42710: 'duplicate_object',
42702: 'ambiguous_column',
42725: 'ambiguous_function',
'42P08': 'ambiguous_parameter',
'42P09': 'ambiguous_alias',
'42P10': 'invalid_column_reference',
42611: 'invalid_column_definition',
'42P11': 'invalid_cursor_definition',
'42P12': 'invalid_database_definition',
'42P13': 'invalid_function_definition',
'42P14': 'invalid_prepared_statement_definition',
'42P15': 'invalid_schema_definition',
'42P16': 'invalid_table_definition',
'42P17': 'invalid_object_definition',
// Class 44 — WITH CHECK OPTION Violation
44000: 'with_check_option_violation',
// Class 53 — Insufficient Resources
53000: 'insufficient_resources',
53100: 'disk_full',
53200: 'out_of_memory',
53300: 'too_many_connections',
53400: 'configuration_limit_exceeded',
// Class 54 — Program Limit Exceeded
54000: 'program_limit_exceeded',
54001: 'statement_too_complex',
54011: 'too_many_columns',
54023: 'too_many_arguments',
// Class 55 — Object Not In Prerequisite State
55000: 'object_not_in_prerequisite_state',
55006: 'object_in_use',
'55P02': 'cant_change_runtime_param',
'55P03': 'lock_not_available',
// Class 57 — Operator Intervention
57000: 'operator_intervention',
57014: 'query_canceled',
'57P01': 'admin_shutdown',
'57P02': 'crash_shutdown',
'57P03': 'cannot_connect_now',
'57P04': 'database_dropped',
// Class 58 — System Error (errors external to PostgreSQL itself)
58000: 'system_error',
58030: 'io_error',
'58P01': 'undefined_file',
'58P02': 'duplicate_file',
// Class F0 — Configuration File Error
F0000: 'config_file_error',
F0001: 'lock_file_exists',
// Class HV — Foreign Data Wrapper Error (SQL/MED)
HV000: 'fdw_error',
HV005: 'fdw_column_name_not_found',
HV002: 'fdw_dynamic_parameter_value_needed',
HV010: 'fdw_function_sequence_error',
HV021: 'fdw_inconsistent_descriptor_information',
HV024: 'fdw_invalid_attribute_value',
HV007: 'fdw_invalid_column_name',
HV008: 'fdw_invalid_column_number',
HV004: 'fdw_invalid_data_type',
HV006: 'fdw_invalid_data_type_descriptors',
HV091: 'fdw_invalid_descriptor_field_identifier',
HV00B: 'fdw_invalid_handle',
HV00C: 'fdw_invalid_option_index',
HV00D: 'fdw_invalid_option_name',
HV090: 'fdw_invalid_string_length_or_buffer_length',
HV00A: 'fdw_invalid_string_format',
HV009: 'fdw_invalid_use_of_null_pointer',
HV014: 'fdw_too_many_handles',
HV001: 'fdw_out_of_memory',
HV00P: 'fdw_no_schemas',
HV00J: 'fdw_option_name_not_found',
HV00K: 'fdw_reply_handle',
HV00Q: 'fdw_schema_not_found',
HV00R: 'fdw_table_not_found',
HV00L: 'fdw_unable_to_create_execution',
HV00M: 'fdw_unable_to_create_reply',
HV00N: 'fdw_unable_to_establish_connection',
// Class P0 — PL/pgSQL Error
P0000: 'plpgsql_error',
P0001: 'raise_exception',
P0002: 'no_data_found',
P0003: 'too_many_rows',
P0004: 'assert_failure',
// Class XX — Internal Error
XX000: 'internal_error',
XX001: 'data_corrupted',
XX002: 'index_corrupted'
};
module.exports.codeToCondition = codeToCondition;
module.exports.conditionToCode = _.invert(codeToCondition);