From 01864d3507cf256454a5408e9b3bd2df3dd615df Mon Sep 17 00:00:00 2001 From: robocop Date: Wed, 28 Mar 2007 04:51:48 +0000 Subject: [PATCH] Fix CORE-1162 --- lang_helpers/gds_codes.ftn | 4 + lang_helpers/gds_codes.pas | 2 + src/include/gen/codetext.h | 2 + src/include/gen/iberror.h | 8 +- src/include/gen/msgs.h | 348 ++++++++++++++++++------------------ src/include/gen/rdb_codes.h | 2 + src/include/gen/sql_code.h | 2 + src/jrd/dyn_mod.epp | 80 +++++++-- src/msgs/facilities2.sql | 2 +- src/msgs/messages2.sql | 34 ++++ src/msgs/system_errors2.sql | 2 + 11 files changed, 300 insertions(+), 186 deletions(-) diff --git a/lang_helpers/gds_codes.ftn b/lang_helpers/gds_codes.ftn index 7f3ddf28c35..56d70f764fc 100644 --- a/lang_helpers/gds_codes.ftn +++ b/lang_helpers/gds_codes.ftn @@ -1324,6 +1324,10 @@ C -- PARAMETER (GDS__dyn_zero_len_id = 336068820) INTEGER*4 GDS__dyn_wrong_gtt_scope PARAMETER (GDS__dyn_wrong_gtt_scope = 336068840) + INTEGER*4 GDS__dyn_scale_too_big + PARAMETER (GDS__dyn_scale_too_big = 336068852) + INTEGER*4 GDS__dyn_precision_too_small + PARAMETER (GDS__dyn_precision_too_small = 336068853) INTEGER*4 GDS__gbak_unknown_switch PARAMETER (GDS__gbak_unknown_switch = 336330753) INTEGER*4 GDS__gbak_page_size_missing diff --git a/lang_helpers/gds_codes.pas b/lang_helpers/gds_codes.pas index efcc47a88a1..fb47853bf66 100644 --- a/lang_helpers/gds_codes.pas +++ b/lang_helpers/gds_codes.pas @@ -669,6 +669,8 @@ gds_dyn_dtype_conv_invalid = 336068818; gds_dyn_zero_len_id = 336068820; gds_dyn_wrong_gtt_scope = 336068840; + gds_dyn_scale_too_big = 336068852; + gds_dyn_precision_too_small = 336068853; gds_gbak_unknown_switch = 336330753; gds_gbak_page_size_missing = 336330754; gds_gbak_page_size_toobig = 336330755; diff --git a/src/include/gen/codetext.h b/src/include/gen/codetext.h index 17a28610c8b..ac9f6ac2859 100644 --- a/src/include/gen/codetext.h +++ b/src/include/gen/codetext.h @@ -658,6 +658,8 @@ static const struct { {"dyn_dtype_conv_invalid", 336068818}, {"dyn_zero_len_id", 336068820}, {"dyn_wrong_gtt_scope", 336068840}, + {"dyn_scale_too_big", 336068852}, + {"dyn_precision_too_small", 336068853}, {"gbak_unknown_switch", 336330753}, {"gbak_page_size_missing", 336330754}, {"gbak_page_size_toobig", 336330755}, diff --git a/src/include/gen/iberror.h b/src/include/gen/iberror.h index 619e9642acb..82fbf418d17 100644 --- a/src/include/gen/iberror.h +++ b/src/include/gen/iberror.h @@ -691,6 +691,8 @@ const ISC_LONG isc_dyn_invalid_dtype_conversion = 336068817L; const ISC_LONG isc_dyn_dtype_conv_invalid = 336068818L; const ISC_LONG isc_dyn_zero_len_id = 336068820L; const ISC_LONG isc_dyn_wrong_gtt_scope = 336068840L; +const ISC_LONG isc_dyn_scale_too_big = 336068852L; +const ISC_LONG isc_dyn_precision_too_small = 336068853L; const ISC_LONG isc_gbak_unknown_switch = 336330753L; const ISC_LONG isc_gbak_page_size_missing = 336330754L; const ISC_LONG isc_gbak_page_size_toobig = 336330755L; @@ -864,7 +866,7 @@ const ISC_LONG isc_gstat_unexpected_eof = 336920580L; const ISC_LONG isc_gstat_open_err = 336920605L; const ISC_LONG isc_gstat_read_err = 336920606L; const ISC_LONG isc_gstat_sysmemex = 336920607L; -const ISC_LONG isc_err_max = 809; +const ISC_LONG isc_err_max = 811; #else /* c definitions */ @@ -1525,6 +1527,8 @@ const ISC_LONG isc_err_max = 809; #define isc_dyn_dtype_conv_invalid 336068818L #define isc_dyn_zero_len_id 336068820L #define isc_dyn_wrong_gtt_scope 336068840L +#define isc_dyn_scale_too_big 336068852L +#define isc_dyn_precision_too_small 336068853L #define isc_gbak_unknown_switch 336330753L #define isc_gbak_page_size_missing 336330754L #define isc_gbak_page_size_toobig 336330755L @@ -1698,7 +1702,7 @@ const ISC_LONG isc_err_max = 809; #define isc_gstat_open_err 336920605L #define isc_gstat_read_err 336920606L #define isc_gstat_sysmemex 336920607L -#define isc_err_max 809 +#define isc_err_max 811 #endif diff --git a/src/include/gen/msgs.h b/src/include/gen/msgs.h index e691ecd1fa2..8b680ddfc7d 100644 --- a/src/include/gen/msgs.h +++ b/src/include/gen/msgs.h @@ -658,178 +658,180 @@ static const struct { {336068818, "Cannot change datatype for column @1 from a character type to a non-character type."}, /* 634, dyn_dtype_conv_invalid */ {336068820, "Zero length identifiers are not allowed"}, /* 635, dyn_zero_len_id */ {336068840, "@1 cannot reference @2"}, /* 636, dyn_wrong_gtt_scope */ - {336330753, "found unknown switch"}, /* 637, gbak_unknown_switch */ - {336330754, "page size parameter missing"}, /* 638, gbak_page_size_missing */ - {336330755, "Page size specified (@1) greater than limit (16384 bytes)"}, /* 639, gbak_page_size_toobig */ - {336330756, "redirect location for output is not specified"}, /* 640, gbak_redir_ouput_missing */ - {336330757, "conflicting switches for backup/restore"}, /* 641, gbak_switches_conflict */ - {336330758, "device type @1 not known"}, /* 642, gbak_unknown_device */ - {336330759, "protection is not there yet"}, /* 643, gbak_no_protection */ - {336330760, "page size is allowed only on restore or create"}, /* 644, gbak_page_size_not_allowed */ - {336330761, "multiple sources or destinations specified"}, /* 645, gbak_multi_source_dest */ - {336330762, "requires both input and output filenames"}, /* 646, gbak_filename_missing */ - {336330763, "input and output have the same name. Disallowed."}, /* 647, gbak_dup_inout_names */ - {336330764, "expected page size, encountered \"@1\""}, /* 648, gbak_inv_page_size */ - {336330765, "REPLACE specified, but the first file @1 is a database"}, /* 649, gbak_db_specified */ - {336330766, "database @1 already exists. To replace it, use the -REP switch"}, /* 650, gbak_db_exists */ - {336330767, "device type not specified"}, /* 651, gbak_unk_device */ - {336330772, "gds_$blob_info failed"}, /* 652, gbak_blob_info_failed */ - {336330773, "do not understand BLOB INFO item @1"}, /* 653, gbak_unk_blob_item */ - {336330774, "gds_$get_segment failed"}, /* 654, gbak_get_seg_failed */ - {336330775, "gds_$close_blob failed"}, /* 655, gbak_close_blob_failed */ - {336330776, "gds_$open_blob failed"}, /* 656, gbak_open_blob_failed */ - {336330777, "Failed in put_blr_gen_id"}, /* 657, gbak_put_blr_gen_id_failed */ - {336330778, "data type @1 not understood"}, /* 658, gbak_unk_type */ - {336330779, "gds_$compile_request failed"}, /* 659, gbak_comp_req_failed */ - {336330780, "gds_$start_request failed"}, /* 660, gbak_start_req_failed */ - {336330781, " gds_$receive failed"}, /* 661, gbak_rec_failed */ - {336330782, "gds_$release_request failed"}, /* 662, gbak_rel_req_failed */ - {336330783, " gds_$database_info failed"}, /* 663, gbak_db_info_failed */ - {336330784, "Expected database description record"}, /* 664, gbak_no_db_desc */ - {336330785, "failed to create database @1"}, /* 665, gbak_db_create_failed */ - {336330786, "RESTORE: decompression length error"}, /* 666, gbak_decomp_len_error */ - {336330787, "cannot find table @1"}, /* 667, gbak_tbl_missing */ - {336330788, "Cannot find column for BLOB"}, /* 668, gbak_blob_col_missing */ - {336330789, "gds_$create_blob failed"}, /* 669, gbak_create_blob_failed */ - {336330790, "gds_$put_segment failed"}, /* 670, gbak_put_seg_failed */ - {336330791, "expected record length"}, /* 671, gbak_rec_len_exp */ - {336330792, "wrong length record, expected @1 encountered @2"}, /* 672, gbak_inv_rec_len */ - {336330793, "expected data attribute"}, /* 673, gbak_exp_data_type */ - {336330794, "Failed in store_blr_gen_id"}, /* 674, gbak_gen_id_failed */ - {336330795, "do not recognize record type @1"}, /* 675, gbak_unk_rec_type */ - {336330796, "Expected backup version 1..8. Found @1"}, /* 676, gbak_inv_bkup_ver */ - {336330797, "expected backup description record"}, /* 677, gbak_missing_bkup_desc */ - {336330798, "string truncated"}, /* 678, gbak_string_trunc */ - {336330799, " warning -- record could not be restored"}, /* 679, gbak_cant_rest_record */ - {336330800, "gds_$send failed"}, /* 680, gbak_send_failed */ - {336330801, "no table name for data"}, /* 681, gbak_no_tbl_name */ - {336330802, "unexpected end of file on backup file"}, /* 682, gbak_unexp_eof */ - {336330803, "database format @1 is too old to restore to"}, /* 683, gbak_db_format_too_old */ - {336330804, "array dimension for column @1 is invalid"}, /* 684, gbak_inv_array_dim */ - {336330807, "Expected XDR record length"}, /* 685, gbak_xdr_len_expected */ - {336330817, "cannot open backup file @1"}, /* 686, gbak_open_bkup_error */ - {336330818, "cannot open status and error output file @1"}, /* 687, gbak_open_error */ - {336330934, "blocking factor parameter missing"}, /* 688, gbak_missing_block_fac */ - {336330935, "expected blocking factor, encountered \"@1\""}, /* 689, gbak_inv_block_fac */ - {336330936, "a blocking factor may not be used in conjunction with device CT"}, /* 690, gbak_block_fac_specified */ - {336330940, "user name parameter missing"}, /* 691, gbak_missing_username */ - {336330941, "password parameter missing"}, /* 692, gbak_missing_password */ - {336330952, " missing parameter for the number of bytes to be skipped"}, /* 693, gbak_missing_skipped_bytes */ - {336330953, "expected number of bytes to be skipped, encountered \"@1\""}, /* 694, gbak_inv_skipped_bytes */ - {336330965, "character set"}, /* 695, gbak_err_restore_charset */ - {336330967, "collation"}, /* 696, gbak_err_restore_collation */ - {336330972, "Unexpected I/O error while reading from backup file"}, /* 697, gbak_read_error */ - {336330973, "Unexpected I/O error while writing to backup file"}, /* 698, gbak_write_error */ - {336330985, "could not drop database @1 (database might be in use)"}, /* 699, gbak_db_in_use */ - {336330990, "System memory exhausted"}, /* 700, gbak_sysmemex */ - {336331002, "SQL role"}, /* 701, gbak_restore_role_failed */ - {336331005, "SQL role parameter missing"}, /* 702, gbak_role_op_missing */ - {336331010, "page buffers parameter missing"}, /* 703, gbak_page_buffers_missing */ - {336331011, "expected page buffers, encountered \"@1\""}, /* 704, gbak_page_buffers_wrong_param */ - {336331012, "page buffers is allowed only on restore or create"}, /* 705, gbak_page_buffers_restore */ - {336331014, "size specification either missing or incorrect for file @1"}, /* 706, gbak_inv_size */ - {336331015, "file @1 out of sequence"}, /* 707, gbak_file_outof_sequence */ - {336331016, "can't join -- one of the files missing"}, /* 708, gbak_join_file_missing */ - {336331017, " standard input is not supported when using join operation"}, /* 709, gbak_stdin_not_supptd */ - {336331018, "standard output is not supported when using split operation"}, /* 710, gbak_stdout_not_supptd */ - {336331019, "backup file @1 might be corrupt"}, /* 711, gbak_bkup_corrupt */ - {336331020, "database file specification missing"}, /* 712, gbak_unk_db_file_spec */ - {336331021, "can't write a header record to file @1"}, /* 713, gbak_hdr_write_failed */ - {336331022, "free disk space exhausted"}, /* 714, gbak_disk_space_ex */ - {336331023, "file size given (@1) is less than minimum allowed (@2)"}, /* 715, gbak_size_lt_min */ - {336331025, "service name parameter missing"}, /* 716, gbak_svc_name_missing */ - {336331026, "Cannot restore over current database, must be SYSDBA or owner of the existing database."}, /* 717, gbak_not_ownr */ - {336331031, "\"read_only\" or \"read_write\" required"}, /* 718, gbak_mode_req */ - {336331033, "just data ignore all constraints etc."}, /* 719, gbak_just_data */ - {336331034, "restoring data only ignoring foreign key, unique, not null & other constraints"}, /* 720, gbak_data_only */ - {336397205, "ODS versions before ODS@1 are not supported"}, /* 721, dsql_too_old_ods */ - {336397206, "Table @1 does not exist"}, /* 722, dsql_table_not_found */ - {336397207, "View @1 does not exist"}, /* 723, dsql_view_not_found */ - {336397208, "At line @1, column @2"}, /* 724, dsql_line_col_error */ - {336397209, "At unknown line and column"}, /* 725, dsql_unknown_pos */ - {336397210, "Column @1 cannot be repeated in @2 statement"}, /* 726, dsql_no_dup_name */ - {336397211, "Too many values (more than @1) in member list to match against"}, /* 727, dsql_too_many_values */ - {336397212, "Array and BLOB data types not allowed in computed field"}, /* 728, dsql_no_array_computed */ - {336397213, "Implicit domain name @1 not allowed in user created domain"}, /* 729, dsql_implicit_domain_name */ - {336397214, "scalar operator used on field @1 which is not an array"}, /* 730, dsql_only_can_subscript_array */ - {336397215, "cannot sort on more than 255 items"}, /* 731, dsql_max_sort_items */ - {336397216, "cannot group on more than 255 items"}, /* 732, dsql_max_group_items */ - {336397217, "Cannot include the same field (@1.@2) twice in the ORDER BY clause with conflicting sorting options"}, /* 733, dsql_conflicting_sort_field */ - {336397218, "column list from derived table @1 has more columns than the number of items in its SELECT statement"}, /* 734, dsql_derived_table_more_columns */ - {336397219, "column list from derived table @1 has less columns than the number of items in its SELECT statement"}, /* 735, dsql_derived_table_less_columns */ - {336397220, "no column name specified for column number @1 in derived table @2"}, /* 736, dsql_derived_field_unnamed */ - {336397221, "column @1 was specified multiple times for derived table @2"}, /* 737, dsql_derived_field_dup_name */ - {336397222, "Internal dsql error: alias type expected by pass1_expand_select_node"}, /* 738, dsql_derived_alias_select */ - {336397223, "Internal dsql error: alias type expected by pass1_field"}, /* 739, dsql_derived_alias_field */ - {336397224, "Internal dsql error: column position out of range in pass1_union_auto_cast"}, /* 740, dsql_auto_field_bad_pos */ - {336397225, "Recursive CTE member (@1) can refer itself only in FROM clause"}, /* 741, dsql_cte_wrong_reference */ - {336397226, "CTE '@1' has cyclic dependencies"}, /* 742, dsql_cte_cycle */ - {336397227, "Recursive member of CTE can't be member of an outer join"}, /* 743, dsql_cte_outer_join */ - {336397228, "Recursive member of CTE can't reference itself more than once"}, /* 744, dsql_cte_mult_references */ - {336397229, "Recursive CTE (@1) must be an UNION"}, /* 745, dsql_cte_not_a_union */ - {336397230, "CTE '@1' defined non-recursive member after recursive"}, /* 746, dsql_cte_nonrecurs_after_recurs */ - {336397231, "Recursive member of CTE '@1' has @2 clause"}, /* 747, dsql_cte_wrong_clause */ - {336397232, "Recursive members of CTE (@1) must be linked with another members via UNION ALL"}, /* 748, dsql_cte_union_all */ - {336397233, "Non-recursive member is missing in CTE '@1'"}, /* 749, dsql_cte_miss_nonrecursive */ - {336397234, "WITH clause can't be nested"}, /* 750, dsql_cte_nested_with */ - {336723983, "unable to open database"}, /* 751, gsec_cant_open_db */ - {336723984, "error in switch specifications"}, /* 752, gsec_switches_error */ - {336723985, "no operation specified"}, /* 753, gsec_no_op_spec */ - {336723986, "no user name specified"}, /* 754, gsec_no_usr_name */ - {336723987, "add record error"}, /* 755, gsec_err_add */ - {336723988, "modify record error"}, /* 756, gsec_err_modify */ - {336723989, "find/modify record error"}, /* 757, gsec_err_find_mod */ - {336723990, "record not found for user: @1"}, /* 758, gsec_err_rec_not_found */ - {336723991, "delete record error"}, /* 759, gsec_err_delete */ - {336723992, "find/delete record error"}, /* 760, gsec_err_find_del */ - {336723996, "find/display record error"}, /* 761, gsec_err_find_disp */ - {336723997, "invalid parameter, no switch defined"}, /* 762, gsec_inv_param */ - {336723998, "operation already specified"}, /* 763, gsec_op_specified */ - {336723999, "password already specified"}, /* 764, gsec_pw_specified */ - {336724000, "uid already specified"}, /* 765, gsec_uid_specified */ - {336724001, "gid already specified"}, /* 766, gsec_gid_specified */ - {336724002, "project already specified"}, /* 767, gsec_proj_specified */ - {336724003, "organization already specified"}, /* 768, gsec_org_specified */ - {336724004, "first name already specified"}, /* 769, gsec_fname_specified */ - {336724005, "middle name already specified"}, /* 770, gsec_mname_specified */ - {336724006, "last name already specified"}, /* 771, gsec_lname_specified */ - {336724008, "invalid switch specified"}, /* 772, gsec_inv_switch */ - {336724009, "ambiguous switch specified"}, /* 773, gsec_amb_switch */ - {336724010, "no operation specified for parameters"}, /* 774, gsec_no_op_specified */ - {336724011, "no parameters allowed for this operation"}, /* 775, gsec_params_not_allowed */ - {336724012, "incompatible switches specified"}, /* 776, gsec_incompat_switch */ - {336724044, "Invalid user name (maximum 31 bytes allowed)"}, /* 777, gsec_inv_username */ - {336724045, "Warning - maximum 8 significant bytes of password used"}, /* 778, gsec_inv_pw_length */ - {336724046, "database already specified"}, /* 779, gsec_db_specified */ - {336724047, "database administrator name already specified"}, /* 780, gsec_db_admin_specified */ - {336724048, "database administrator password already specified"}, /* 781, gsec_db_admin_pw_specified */ - {336724049, "SQL role name already specified"}, /* 782, gsec_sql_role_specified */ - {336789504, "The license file does not exist or could not be opened for read"}, /* 783, license_no_file */ - {336789523, "operation already specified"}, /* 784, license_op_specified */ - {336789524, "no operation specified"}, /* 785, license_op_missing */ - {336789525, "invalid switch"}, /* 786, license_inv_switch */ - {336789526, "invalid switch combination"}, /* 787, license_inv_switch_combo */ - {336789527, "illegal operation/switch combination"}, /* 788, license_inv_op_combo */ - {336789528, "ambiguous switch"}, /* 789, license_amb_switch */ - {336789529, "invalid parameter, no switch specified"}, /* 790, license_inv_parameter */ - {336789530, "switch does not take any parameter"}, /* 791, license_param_specified */ - {336789531, "switch requires a parameter"}, /* 792, license_param_req */ - {336789532, "syntax error in command line"}, /* 793, license_syntx_error */ - {336789534, "The certificate was not added. A duplicate ID exists in the license file."}, /* 794, license_dup_id */ - {336789535, "The certificate was not added. Invalid certificate ID / Key combination."}, /* 795, license_inv_id_key */ - {336789536, "The certificate was not removed. The key does not exist or corresponds to a temporary evaluation license."}, /* 796, license_err_remove */ - {336789537, "An error occurred updating the license file. Operation cancelled."}, /* 797, license_err_update */ - {336789538, "The certificate could not be validated based on the information given. Please recheck the ID and key information."}, /* 798, license_err_convert */ - {336789539, "Operation failed. An unknown error occurred."}, /* 799, license_err_unk */ - {336789540, "Add license operation failed, KEY: @1 ID: @2"}, /* 800, license_svc_err_add */ - {336789541, "Remove license operation failed, KEY: @1"}, /* 801, license_svc_err_remove */ - {336789563, "The evaluation license has already been used on this server. You need to purchase a non-evaluation license."}, /* 802, license_eval_exists */ - {336920577, "found unknown switch"}, /* 803, gstat_unknown_switch */ - {336920578, "please retry, giving a database name"}, /* 804, gstat_retry */ - {336920579, "Wrong ODS version, expected @1, encountered @2"}, /* 805, gstat_wrong_ods */ - {336920580, "Unexpected end of database file."}, /* 806, gstat_unexpected_eof */ - {336920605, "Can't open database file @1"}, /* 807, gstat_open_err */ - {336920606, "Can't read a database page"}, /* 808, gstat_read_err */ - {336920607, "System memory exhausted"}, /* 809, gstat_sysmemex */ + {336068852, "New scale specified for column @1 must be at most @2."}, /* 637, dyn_scale_too_big */ + {336068853, "New precision specified for column @1 must be at least @2."}, /* 638, dyn_precision_too_small */ + {336330753, "found unknown switch"}, /* 639, gbak_unknown_switch */ + {336330754, "page size parameter missing"}, /* 640, gbak_page_size_missing */ + {336330755, "Page size specified (@1) greater than limit (16384 bytes)"}, /* 641, gbak_page_size_toobig */ + {336330756, "redirect location for output is not specified"}, /* 642, gbak_redir_ouput_missing */ + {336330757, "conflicting switches for backup/restore"}, /* 643, gbak_switches_conflict */ + {336330758, "device type @1 not known"}, /* 644, gbak_unknown_device */ + {336330759, "protection is not there yet"}, /* 645, gbak_no_protection */ + {336330760, "page size is allowed only on restore or create"}, /* 646, gbak_page_size_not_allowed */ + {336330761, "multiple sources or destinations specified"}, /* 647, gbak_multi_source_dest */ + {336330762, "requires both input and output filenames"}, /* 648, gbak_filename_missing */ + {336330763, "input and output have the same name. Disallowed."}, /* 649, gbak_dup_inout_names */ + {336330764, "expected page size, encountered \"@1\""}, /* 650, gbak_inv_page_size */ + {336330765, "REPLACE specified, but the first file @1 is a database"}, /* 651, gbak_db_specified */ + {336330766, "database @1 already exists. To replace it, use the -REP switch"}, /* 652, gbak_db_exists */ + {336330767, "device type not specified"}, /* 653, gbak_unk_device */ + {336330772, "gds_$blob_info failed"}, /* 654, gbak_blob_info_failed */ + {336330773, "do not understand BLOB INFO item @1"}, /* 655, gbak_unk_blob_item */ + {336330774, "gds_$get_segment failed"}, /* 656, gbak_get_seg_failed */ + {336330775, "gds_$close_blob failed"}, /* 657, gbak_close_blob_failed */ + {336330776, "gds_$open_blob failed"}, /* 658, gbak_open_blob_failed */ + {336330777, "Failed in put_blr_gen_id"}, /* 659, gbak_put_blr_gen_id_failed */ + {336330778, "data type @1 not understood"}, /* 660, gbak_unk_type */ + {336330779, "gds_$compile_request failed"}, /* 661, gbak_comp_req_failed */ + {336330780, "gds_$start_request failed"}, /* 662, gbak_start_req_failed */ + {336330781, " gds_$receive failed"}, /* 663, gbak_rec_failed */ + {336330782, "gds_$release_request failed"}, /* 664, gbak_rel_req_failed */ + {336330783, " gds_$database_info failed"}, /* 665, gbak_db_info_failed */ + {336330784, "Expected database description record"}, /* 666, gbak_no_db_desc */ + {336330785, "failed to create database @1"}, /* 667, gbak_db_create_failed */ + {336330786, "RESTORE: decompression length error"}, /* 668, gbak_decomp_len_error */ + {336330787, "cannot find table @1"}, /* 669, gbak_tbl_missing */ + {336330788, "Cannot find column for BLOB"}, /* 670, gbak_blob_col_missing */ + {336330789, "gds_$create_blob failed"}, /* 671, gbak_create_blob_failed */ + {336330790, "gds_$put_segment failed"}, /* 672, gbak_put_seg_failed */ + {336330791, "expected record length"}, /* 673, gbak_rec_len_exp */ + {336330792, "wrong length record, expected @1 encountered @2"}, /* 674, gbak_inv_rec_len */ + {336330793, "expected data attribute"}, /* 675, gbak_exp_data_type */ + {336330794, "Failed in store_blr_gen_id"}, /* 676, gbak_gen_id_failed */ + {336330795, "do not recognize record type @1"}, /* 677, gbak_unk_rec_type */ + {336330796, "Expected backup version 1..8. Found @1"}, /* 678, gbak_inv_bkup_ver */ + {336330797, "expected backup description record"}, /* 679, gbak_missing_bkup_desc */ + {336330798, "string truncated"}, /* 680, gbak_string_trunc */ + {336330799, " warning -- record could not be restored"}, /* 681, gbak_cant_rest_record */ + {336330800, "gds_$send failed"}, /* 682, gbak_send_failed */ + {336330801, "no table name for data"}, /* 683, gbak_no_tbl_name */ + {336330802, "unexpected end of file on backup file"}, /* 684, gbak_unexp_eof */ + {336330803, "database format @1 is too old to restore to"}, /* 685, gbak_db_format_too_old */ + {336330804, "array dimension for column @1 is invalid"}, /* 686, gbak_inv_array_dim */ + {336330807, "Expected XDR record length"}, /* 687, gbak_xdr_len_expected */ + {336330817, "cannot open backup file @1"}, /* 688, gbak_open_bkup_error */ + {336330818, "cannot open status and error output file @1"}, /* 689, gbak_open_error */ + {336330934, "blocking factor parameter missing"}, /* 690, gbak_missing_block_fac */ + {336330935, "expected blocking factor, encountered \"@1\""}, /* 691, gbak_inv_block_fac */ + {336330936, "a blocking factor may not be used in conjunction with device CT"}, /* 692, gbak_block_fac_specified */ + {336330940, "user name parameter missing"}, /* 693, gbak_missing_username */ + {336330941, "password parameter missing"}, /* 694, gbak_missing_password */ + {336330952, " missing parameter for the number of bytes to be skipped"}, /* 695, gbak_missing_skipped_bytes */ + {336330953, "expected number of bytes to be skipped, encountered \"@1\""}, /* 696, gbak_inv_skipped_bytes */ + {336330965, "character set"}, /* 697, gbak_err_restore_charset */ + {336330967, "collation"}, /* 698, gbak_err_restore_collation */ + {336330972, "Unexpected I/O error while reading from backup file"}, /* 699, gbak_read_error */ + {336330973, "Unexpected I/O error while writing to backup file"}, /* 700, gbak_write_error */ + {336330985, "could not drop database @1 (database might be in use)"}, /* 701, gbak_db_in_use */ + {336330990, "System memory exhausted"}, /* 702, gbak_sysmemex */ + {336331002, "SQL role"}, /* 703, gbak_restore_role_failed */ + {336331005, "SQL role parameter missing"}, /* 704, gbak_role_op_missing */ + {336331010, "page buffers parameter missing"}, /* 705, gbak_page_buffers_missing */ + {336331011, "expected page buffers, encountered \"@1\""}, /* 706, gbak_page_buffers_wrong_param */ + {336331012, "page buffers is allowed only on restore or create"}, /* 707, gbak_page_buffers_restore */ + {336331014, "size specification either missing or incorrect for file @1"}, /* 708, gbak_inv_size */ + {336331015, "file @1 out of sequence"}, /* 709, gbak_file_outof_sequence */ + {336331016, "can't join -- one of the files missing"}, /* 710, gbak_join_file_missing */ + {336331017, " standard input is not supported when using join operation"}, /* 711, gbak_stdin_not_supptd */ + {336331018, "standard output is not supported when using split operation"}, /* 712, gbak_stdout_not_supptd */ + {336331019, "backup file @1 might be corrupt"}, /* 713, gbak_bkup_corrupt */ + {336331020, "database file specification missing"}, /* 714, gbak_unk_db_file_spec */ + {336331021, "can't write a header record to file @1"}, /* 715, gbak_hdr_write_failed */ + {336331022, "free disk space exhausted"}, /* 716, gbak_disk_space_ex */ + {336331023, "file size given (@1) is less than minimum allowed (@2)"}, /* 717, gbak_size_lt_min */ + {336331025, "service name parameter missing"}, /* 718, gbak_svc_name_missing */ + {336331026, "Cannot restore over current database, must be SYSDBA or owner of the existing database."}, /* 719, gbak_not_ownr */ + {336331031, "\"read_only\" or \"read_write\" required"}, /* 720, gbak_mode_req */ + {336331033, "just data ignore all constraints etc."}, /* 721, gbak_just_data */ + {336331034, "restoring data only ignoring foreign key, unique, not null & other constraints"}, /* 722, gbak_data_only */ + {336397205, "ODS versions before ODS@1 are not supported"}, /* 723, dsql_too_old_ods */ + {336397206, "Table @1 does not exist"}, /* 724, dsql_table_not_found */ + {336397207, "View @1 does not exist"}, /* 725, dsql_view_not_found */ + {336397208, "At line @1, column @2"}, /* 726, dsql_line_col_error */ + {336397209, "At unknown line and column"}, /* 727, dsql_unknown_pos */ + {336397210, "Column @1 cannot be repeated in @2 statement"}, /* 728, dsql_no_dup_name */ + {336397211, "Too many values (more than @1) in member list to match against"}, /* 729, dsql_too_many_values */ + {336397212, "Array and BLOB data types not allowed in computed field"}, /* 730, dsql_no_array_computed */ + {336397213, "Implicit domain name @1 not allowed in user created domain"}, /* 731, dsql_implicit_domain_name */ + {336397214, "scalar operator used on field @1 which is not an array"}, /* 732, dsql_only_can_subscript_array */ + {336397215, "cannot sort on more than 255 items"}, /* 733, dsql_max_sort_items */ + {336397216, "cannot group on more than 255 items"}, /* 734, dsql_max_group_items */ + {336397217, "Cannot include the same field (@1.@2) twice in the ORDER BY clause with conflicting sorting options"}, /* 735, dsql_conflicting_sort_field */ + {336397218, "column list from derived table @1 has more columns than the number of items in its SELECT statement"}, /* 736, dsql_derived_table_more_columns */ + {336397219, "column list from derived table @1 has less columns than the number of items in its SELECT statement"}, /* 737, dsql_derived_table_less_columns */ + {336397220, "no column name specified for column number @1 in derived table @2"}, /* 738, dsql_derived_field_unnamed */ + {336397221, "column @1 was specified multiple times for derived table @2"}, /* 739, dsql_derived_field_dup_name */ + {336397222, "Internal dsql error: alias type expected by pass1_expand_select_node"}, /* 740, dsql_derived_alias_select */ + {336397223, "Internal dsql error: alias type expected by pass1_field"}, /* 741, dsql_derived_alias_field */ + {336397224, "Internal dsql error: column position out of range in pass1_union_auto_cast"}, /* 742, dsql_auto_field_bad_pos */ + {336397225, "Recursive CTE member (@1) can refer itself only in FROM clause"}, /* 743, dsql_cte_wrong_reference */ + {336397226, "CTE '@1' has cyclic dependencies"}, /* 744, dsql_cte_cycle */ + {336397227, "Recursive member of CTE can't be member of an outer join"}, /* 745, dsql_cte_outer_join */ + {336397228, "Recursive member of CTE can't reference itself more than once"}, /* 746, dsql_cte_mult_references */ + {336397229, "Recursive CTE (@1) must be an UNION"}, /* 747, dsql_cte_not_a_union */ + {336397230, "CTE '@1' defined non-recursive member after recursive"}, /* 748, dsql_cte_nonrecurs_after_recurs */ + {336397231, "Recursive member of CTE '@1' has @2 clause"}, /* 749, dsql_cte_wrong_clause */ + {336397232, "Recursive members of CTE (@1) must be linked with another members via UNION ALL"}, /* 750, dsql_cte_union_all */ + {336397233, "Non-recursive member is missing in CTE '@1'"}, /* 751, dsql_cte_miss_nonrecursive */ + {336397234, "WITH clause can't be nested"}, /* 752, dsql_cte_nested_with */ + {336723983, "unable to open database"}, /* 753, gsec_cant_open_db */ + {336723984, "error in switch specifications"}, /* 754, gsec_switches_error */ + {336723985, "no operation specified"}, /* 755, gsec_no_op_spec */ + {336723986, "no user name specified"}, /* 756, gsec_no_usr_name */ + {336723987, "add record error"}, /* 757, gsec_err_add */ + {336723988, "modify record error"}, /* 758, gsec_err_modify */ + {336723989, "find/modify record error"}, /* 759, gsec_err_find_mod */ + {336723990, "record not found for user: @1"}, /* 760, gsec_err_rec_not_found */ + {336723991, "delete record error"}, /* 761, gsec_err_delete */ + {336723992, "find/delete record error"}, /* 762, gsec_err_find_del */ + {336723996, "find/display record error"}, /* 763, gsec_err_find_disp */ + {336723997, "invalid parameter, no switch defined"}, /* 764, gsec_inv_param */ + {336723998, "operation already specified"}, /* 765, gsec_op_specified */ + {336723999, "password already specified"}, /* 766, gsec_pw_specified */ + {336724000, "uid already specified"}, /* 767, gsec_uid_specified */ + {336724001, "gid already specified"}, /* 768, gsec_gid_specified */ + {336724002, "project already specified"}, /* 769, gsec_proj_specified */ + {336724003, "organization already specified"}, /* 770, gsec_org_specified */ + {336724004, "first name already specified"}, /* 771, gsec_fname_specified */ + {336724005, "middle name already specified"}, /* 772, gsec_mname_specified */ + {336724006, "last name already specified"}, /* 773, gsec_lname_specified */ + {336724008, "invalid switch specified"}, /* 774, gsec_inv_switch */ + {336724009, "ambiguous switch specified"}, /* 775, gsec_amb_switch */ + {336724010, "no operation specified for parameters"}, /* 776, gsec_no_op_specified */ + {336724011, "no parameters allowed for this operation"}, /* 777, gsec_params_not_allowed */ + {336724012, "incompatible switches specified"}, /* 778, gsec_incompat_switch */ + {336724044, "Invalid user name (maximum 31 bytes allowed)"}, /* 779, gsec_inv_username */ + {336724045, "Warning - maximum 8 significant bytes of password used"}, /* 780, gsec_inv_pw_length */ + {336724046, "database already specified"}, /* 781, gsec_db_specified */ + {336724047, "database administrator name already specified"}, /* 782, gsec_db_admin_specified */ + {336724048, "database administrator password already specified"}, /* 783, gsec_db_admin_pw_specified */ + {336724049, "SQL role name already specified"}, /* 784, gsec_sql_role_specified */ + {336789504, "The license file does not exist or could not be opened for read"}, /* 785, license_no_file */ + {336789523, "operation already specified"}, /* 786, license_op_specified */ + {336789524, "no operation specified"}, /* 787, license_op_missing */ + {336789525, "invalid switch"}, /* 788, license_inv_switch */ + {336789526, "invalid switch combination"}, /* 789, license_inv_switch_combo */ + {336789527, "illegal operation/switch combination"}, /* 790, license_inv_op_combo */ + {336789528, "ambiguous switch"}, /* 791, license_amb_switch */ + {336789529, "invalid parameter, no switch specified"}, /* 792, license_inv_parameter */ + {336789530, "switch does not take any parameter"}, /* 793, license_param_specified */ + {336789531, "switch requires a parameter"}, /* 794, license_param_req */ + {336789532, "syntax error in command line"}, /* 795, license_syntx_error */ + {336789534, "The certificate was not added. A duplicate ID exists in the license file."}, /* 796, license_dup_id */ + {336789535, "The certificate was not added. Invalid certificate ID / Key combination."}, /* 797, license_inv_id_key */ + {336789536, "The certificate was not removed. The key does not exist or corresponds to a temporary evaluation license."}, /* 798, license_err_remove */ + {336789537, "An error occurred updating the license file. Operation cancelled."}, /* 799, license_err_update */ + {336789538, "The certificate could not be validated based on the information given. Please recheck the ID and key information."}, /* 800, license_err_convert */ + {336789539, "Operation failed. An unknown error occurred."}, /* 801, license_err_unk */ + {336789540, "Add license operation failed, KEY: @1 ID: @2"}, /* 802, license_svc_err_add */ + {336789541, "Remove license operation failed, KEY: @1"}, /* 803, license_svc_err_remove */ + {336789563, "The evaluation license has already been used on this server. You need to purchase a non-evaluation license."}, /* 804, license_eval_exists */ + {336920577, "found unknown switch"}, /* 805, gstat_unknown_switch */ + {336920578, "please retry, giving a database name"}, /* 806, gstat_retry */ + {336920579, "Wrong ODS version, expected @1, encountered @2"}, /* 807, gstat_wrong_ods */ + {336920580, "Unexpected end of database file."}, /* 808, gstat_unexpected_eof */ + {336920605, "Can't open database file @1"}, /* 809, gstat_open_err */ + {336920606, "Can't read a database page"}, /* 810, gstat_read_err */ + {336920607, "System memory exhausted"}, /* 811, gstat_sysmemex */ {0, NULL} }; diff --git a/src/include/gen/rdb_codes.h b/src/include/gen/rdb_codes.h index 3c335e7a346..2caae1e43ae 100644 --- a/src/include/gen/rdb_codes.h +++ b/src/include/gen/rdb_codes.h @@ -828,4 +828,6 @@ static SLONG user_codes[] = { 0, 0, 0, +0, +0, }; diff --git a/src/include/gen/sql_code.h b/src/include/gen/sql_code.h index ce20e6f56da..2e0a3973e9c 100644 --- a/src/include/gen/sql_code.h +++ b/src/include/gen/sql_code.h @@ -657,6 +657,8 @@ static const struct { {336068818, -829}, /* 210 dyn_dtype_conv_invalid */ {336068820, -901}, /* 212 dyn_zero_len_id */ {336068840, -901}, /* 232 dyn_wrong_gtt_scope */ + {336068852, -829}, /* 244 dyn_scale_too_big */ + {336068853, -829}, /* 245 dyn_precision_too_small */ {336330753, -901}, /* 1 gbak_unknown_switch */ {336330754, -901}, /* 2 gbak_page_size_missing */ {336330755, -901}, /* 3 gbak_page_size_toobig */ diff --git a/src/jrd/dyn_mod.epp b/src/jrd/dyn_mod.epp index 364e27185d3..3c3d365cc12 100644 --- a/src/jrd/dyn_mod.epp +++ b/src/jrd/dyn_mod.epp @@ -103,6 +103,7 @@ static bool field_exists(thread_db*, Database*, Global*, static bool domain_exists(thread_db*, Database*, Global*, const Firebird::MetaName&); static void get_domain_type(thread_db*, Database*, Global*, dyn_fld&); static ULONG check_update_fld_type(const dyn_fld&, const dyn_fld&); +static ULONG check_update_numeric_type(const dyn_fld&, const dyn_fld&); static void modify_err_punt(thread_db*, ULONG, const dyn_fld&, const dyn_fld&); @@ -3364,7 +3365,7 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld, // if (new_fld.dyn_dsc.dsc_length < maxflen) if (new_len < maxflen) return isc_dyn_char_fld_too_small; - /* New size specified for column %s must be greater than %d characters. */ + // msg 208: New size specified for column %s must be at least %d characters. } break; @@ -3420,7 +3421,7 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld, // if (new_fld.dyn_dsc.dsc_length < maxflen) if (DSC_string_length(&new_fld.dyn_dsc) < maxflen) return isc_dyn_char_fld_too_small; - /* New size specified for column %s must be greater than %d characters. */ + // msg 208: New size specified for column %s must be at least %d characters. } break; @@ -3458,7 +3459,9 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld, case blr_short: switch (orig_fld.dyn_dtype) { case blr_short: + return check_update_numeric_type(orig_fld, new_fld); break; + default: return isc_dyn_invalid_dtype_conversion; /* Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported. */ @@ -3469,7 +3472,9 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld, switch (orig_fld.dyn_dtype) { case blr_long: case blr_short: + return check_update_numeric_type(orig_fld, new_fld); break; + default: return isc_dyn_invalid_dtype_conversion; /* Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported. */ @@ -3493,6 +3498,7 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld, case blr_int64: case blr_long: case blr_short: + return check_update_numeric_type(orig_fld, new_fld); break; default: @@ -3529,7 +3535,7 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld, // if (new_fld.dyn_dsc.dsc_length < maxflen) if (DSC_string_length(&new_fld.dyn_dsc) < maxflen) return isc_dyn_char_fld_too_small; - /* New size specified for column %s must be greater than %d characters. */ + // msg 208: New size specified for column %s must be at least %d characters. } break; @@ -3547,6 +3553,38 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld, } +static ULONG check_update_numeric_type(const dyn_fld& orig_fld, + const dyn_fld& new_fld) +{ +/************************************** + * + * c h e c k _ u p d a t e _ n u m e r i c _ t y p e + * + ************************************** + * + * Functional description + * Compare the original field type with the new field type to + * determine if the original type can be changed to the new type. + * The types should be integral, since it tests only numeric/decimal subtypes + * to ensure the scale is not being widened at the expense of the precision, + * because the old stored values should fit in the new definition. + * + * This function returns an error code if the conversion can not be + * made. If the conversion can be made, FB_SUCCESS is returned. + **************************************/ + + // Since dsc_scale is negative, the sum of precision and scale produces + // the width of the integral part. + if (orig_fld.dyn_dsc.dsc_sub_type && new_fld.dyn_dsc.dsc_sub_type && + orig_fld.dyn_precision + orig_fld.dyn_dsc.dsc_scale > + new_fld.dyn_precision + new_fld.dyn_dsc.dsc_scale) + { + return isc_dyn_scale_too_big; + } + return FB_SUCCESS; +} + + static void modify_err_punt(thread_db* tdbb, ULONG errorcode, const dyn_fld& orig_fld_def, @@ -3566,23 +3604,44 @@ static void modify_err_punt(thread_db* tdbb, * DYN_modify_sql_field **************************************/ - switch (errorcode) { + switch (errorcode) + { case isc_dyn_dtype_invalid: - DYN_error_punt(false, 207, orig_fld_def.dyn_fld_name.c_str()); + DYN_error_punt(false, errorcode, orig_fld_def.dyn_fld_name.c_str()); /* Cannot change datatype for column %s.The operation cannot be performed on DATE, BLOB, or ARRAY columns. */ break; case isc_dyn_dtype_conv_invalid: - DYN_error_punt(false, 210, orig_fld_def.dyn_fld_name.c_str()); + DYN_error_punt(false, errorcode, orig_fld_def.dyn_fld_name.c_str()); /* Cannot convert column %s from character to non-character data. */ break; case isc_dyn_char_fld_too_small: DYN_error_punt(false, - 208, + errorcode, SafeArg() << orig_fld_def.dyn_fld_name.c_str() << DSC_string_length(&orig_fld_def.dyn_dsc)); - /* msg 208: New size specified for column %s must be greater than %d characters. */ + // msg 208: New size specified for column %s must be at least %d characters. + break; + + case isc_dyn_scale_too_big: + { + int code = errorcode; + int diff = new_fld_def.dyn_precision - + (orig_fld_def.dyn_precision + orig_fld_def.dyn_dsc.dsc_scale); + if (diff < 0) + { + // If new scale becomes negative externally, the message is useless for the user. + // (The scale is always zero or negative for us but externally is non-negative.) + // Let's ask the user to widen the precision, then. Example: numeric(4, 0) -> numeric(1, 1). + code = isc_dyn_precision_too_small; + diff = new_fld_def.dyn_precision - new_fld_def.dyn_dsc.dsc_scale - diff; + } + DYN_error_punt(false, code, + SafeArg() << orig_fld_def.dyn_fld_name.c_str() << diff); + // scale_too_big: New scale specified for column @1 must be at most @2. + // precision_too_small: New precision specified for column @1 must be at least @2. + } break; case isc_dyn_invalid_dtype_conversion: @@ -3594,11 +3653,12 @@ static void modify_err_punt(thread_db* tdbb, DSC_get_dtype_name(&new_fld_def.dyn_dsc, new_type, sizeof(new_type)); - DYN_error_punt(false, 209, SafeArg() << orig_fld_def.dyn_fld_name.c_str() << + DYN_error_punt(false, errorcode, + SafeArg() << orig_fld_def.dyn_fld_name.c_str() << orig_type << new_type); // Cannot change datatype for @1. Conversion from base type @2 to @3 is not supported. - break; } + break; default: DYN_error_punt(true, 95); diff --git a/src/msgs/facilities2.sql b/src/msgs/facilities2.sql index 56105ac16cb..ad745cdc30f 100644 --- a/src/msgs/facilities2.sql +++ b/src/msgs/facilities2.sql @@ -11,7 +11,7 @@ set bulk_insert INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUM --('1996-11-07 13:39:40', 'GRST', 6, 1) -- ('2005-11-05 13:09:00', 'DSQL', 7, 32) -('2006-10-01 19:10:51', 'DYN', 8, 244) +('2007-03-22 06:41:07', 'DYN', 8, 246) -- --('1996-11-07 13:39:40', 'FRED', 9, 1) -- diff --git a/src/msgs/messages2.sql b/src/msgs/messages2.sql index f93588dbfea..f6a0f6e9ad3 100644 --- a/src/msgs/messages2.sql +++ b/src/msgs/messages2.sql @@ -658,6 +658,8 @@ without specifying a character set.', NULL); ('key_too_big', 'IDX_create_index', 'idx.cpp', NULL, 0, 557, NULL, 'index key too big', NULL, NULL); ('concurrent_transaction', NULL, 'vio.cpp', NULL, 0, 558, NULL, 'concurrent transaction number is @1', NULL, NULL); COMMIT WORK; +-- Do not change the arguments of the previous JRD messages. +-- Write the new JRD messages here. ('not_valid_for_var', 'EVL_validate', 'evl.cpp', NULL, 0, 559, NULL, 'validation error for variable @1, value "@2"', NULL, NULL); ('not_valid_for', 'EVL_validate', 'evl.cpp', NULL, 0, 560, NULL, 'validation error for @1, value "@2"', NULL, NULL); -- QLI @@ -1247,6 +1249,8 @@ type for next topic or to stop: ', NULL, NULL); (NULL, 'parse_sql_dtype', 'parse.cpp', NULL, 1, 510, NULL, 'Field scale exceeds allowed range', NULL, NULL); (NULL, 'parse_sql_dtype', 'parse.cpp', NULL, 1, 511, NULL, 'Field length exceeds allowed range', NULL, NULL); (NULL, 'parse_sql_dtype', 'parse.cpp', NULL, 1, 512, NULL, 'Field length should be greater than zero', NULL, NULL); +-- Do not change the arguments of the previous QLI messages. +-- Write the new QLI messages here. -- GDEF (NULL, 'main', 'DDL.C', NULL, 2, 0, NULL, 'gdef version @1', NULL, NULL); (NULL, 'main', 'DDL.C', NULL, 2, 1, NULL, 'gdef: unknown switch @1', NULL, NULL); @@ -1621,6 +1625,8 @@ for user @4 does not exist', NULL, NULL); ('', 'DDL_yes_no', 'ddl.c', NULL, 2, 342, NULL, 'YES', NULL, NULL); ('', 'DDL_yes_no', 'ddl.c', NULL, 2, 343, NULL, 'NO', NULL, NULL); ('', 'DDL_yes_no', 'ddl.c', NULL, 2, 344, NULL, 'Please respond with YES or NO.', NULL, NULL); +-- Do not change the arguments of the previous GDEF messages. +-- Write the new GDEF messages here. -- GFIX ('gfix_db_name', 'ALICE_gfix', 'alice.c', NULL, 3, 1, NULL, 'data base file name (@1) already given', NULL, NULL); ('gfix_invalid_sw', 'ALICE_gfix', 'alice.c', NULL, 3, 2, NULL, 'invalid switch @1', NULL, NULL); @@ -1739,6 +1745,8 @@ COMMIT WORK; ('gfix_SQL_dialect', 'ALICE_gfix', 'alice.c', NULL, 3, 112, NULL, 'database SQL dialect must be one of ''@1''', NULL, NULL); ('gfix_dialect_req', 'ALICE_gfix', 'alice.c', NULL, 3, 113, NULL, 'dialect number required', NULL, NULL); ('gfix_pzval_req', 'ALICE_gfix', 'alice.cpp', NULL, 3, 114, NULL, 'positive or zero numeric value required', NULL, NULL); +-- Do not change the arguments of the previous GFIX messages. +-- Write the new GFIX messages here. -- DSQL ('dsql_dbkey_from_non_table', 'MAKE_desc', 'make.c', NULL, 7, 2, NULL, 'Cannot SELECT RDB$DB_KEY from a stored procedure.', NULL, NULL); ('dsql_transitional_numeric', 'dsql_yyparse', 'parse.y', NULL, 7, 3, NULL, 'Precision 10 to 18 changed from DOUBLE PRECISION in SQL dialect 1 to 64-bit scaled integer in SQL dialect 3', NULL, NULL); @@ -1770,6 +1778,8 @@ COMMIT WORK; ('upd_ins_with_complex_view', 'pass1_update_or_insert', 'pass1.cpp', NULL, 7, 29, NULL, 'UPDATE OR INSERT without MATCHING could not be used with views based on more than one table', NULL, NULL); ('dsql_incompatible_trigger_type', 'define_trigger', 'ddl.cpp', NULL, 7, 30, NULL, 'Incompatible trigger type', NULL, NULL); ('dsql_db_trigger_type_cant_change', 'define_trigger', 'ddl.cpp', NULL, 7, 31, NULL, 'Database trigger type can''t be changed', NULL, NULL); +-- Do not change the arguments of the previous DSQL messages. +-- Write the new DSQL messages here. -- DYN (NULL, NULL, 'dyn.c', NULL, 8, 1, NULL, 'ODS version not supported by DYN', NULL, NULL); (NULL, NULL, 'dyn.c', NULL, 8, 2, NULL, 'unsupported DYN verb', NULL, NULL); @@ -2006,10 +2016,16 @@ COMMIT WORK; (NULL, 'DYN_define_index', 'dyn_def.epp', NULL, 8, 241, NULL, 'Table @1 not found', NULL, NULL); (NULL, 'DYN_define_index', 'dyn_def.epp', NULL, 8, 242, NULL, 'attempt to reference a view (@1) in a foreign key', NULL, NULL); (NULL, 'DYN_delete_collation', 'dyn_del.epp', NULL, 8, 243, NULL, 'Collation @1 is used in procedure @2 (parameter name @3) and cannot be dropped', NULL, NULL); +-- Do not change the arguments of the previous DYN messages. +-- Write the new DYN messages here. +('dyn_scale_too_big', 'check_update_numeric_type', 'dyn_mod.epp', NULL, 8, 244, NULL, 'New scale specified for column @1 must be at most @2.', NULL, NULL); +('dyn_precision_too_small', 'check_update_numeric_type', 'dyn_mod.epp', NULL, 8, 245, NULL, 'New precision specified for column @1 must be at least @2.', NULL, NULL); COMMIT WORK; -- TEST (NULL, 'main', 'test.c', NULL, 11, 0, 0, 'This is a modified text message', NULL, NULL); (NULL, NULL, NULL, NULL, 11, 3, 0, 'This is a test message', NULL, NULL); +-- Do not change the arguments of the previous TEST messages. +-- Write the new TEST messages here. -- GBAK (NULL, NULL, 'burp.c', NULL, 12, 0, NULL, 'could not locate appropriate error message', NULL, NULL); ('gbak_unknown_switch', '', 'burp.c', NULL, 12, 1, NULL, 'found unknown switch', NULL, NULL); @@ -2313,6 +2329,8 @@ ERROR: Backup incomplete', NULL, NULL); (NULL, 'get_ref_constraint', 'restore.epp', NULL, 12, 292, NULL, 'referential constraint', NULL, NULL); (NULL, 'get_type', 'restore.epp', NULL, 12, 293, NULL, 'type (in RDB$TYPES)', NULL, NULL); (NULL, '', 'burp.cpp', NULL, 12, 294, NULL, ' @1NO_D(BTRIGGERS) do not run database triggers', NULL, NULL); +-- Do not change the arguments of the previous GBAK messages. +-- Write the new GBAK messages here. -- SQLERR (NULL, NULL, NULL, NULL, 13, 1, NULL, 'Firebird error', NULL, NULL); (NULL, NULL, NULL, NULL, 13, 74, NULL, 'Rollback not performed', NULL, NULL); @@ -2502,11 +2520,15 @@ constrained - no 2 table rows can have duplicate column values', NULL, NULL); ('dsql_cte_union_all', 'pass1_recursive_cte', 'dsql.cpp', NULL, 13, 944, NULL, 'Recursive members of CTE (@1) must be linked with another members via UNION ALL', NULL, NULL); ('dsql_cte_miss_nonrecursive', 'pass1_recursive_cte', 'dsql.cpp', NULL, 13, 945, NULL, 'Non-recursive member is missing in CTE ''@1''', NULL, NULL); ('dsql_cte_nested_with', 'dsql_req::addCTEs', 'dsql.cpp', NULL, 13, 946, NULL, 'WITH clause can''t be nested', NULL, NULL); +-- Do not change the arguments of the previous SQLERR messages. +-- Write the new SQLERR messages here. -- SQLWARN (NULL, NULL, NULL, NULL, 14, 100, NULL, 'Row not found for fetch, update or delete, or the result of a query is an empty table.', NULL, NULL); (NULL, NULL, NULL, NULL, 14, 101, NULL, 'segment buffer length shorter than expected', NULL, NULL); (NULL, NULL, NULL, NULL, 14, 301, NULL, 'Datatype needs modification', NULL, NULL); (NULL, NULL, NULL, NULL, 14, 612, NULL, 'Duplicate column or domain name found.', NULL, NULL); +-- Do not change the arguments of the previous SQLWARN messages. +-- Write the new SQLWARN messages here. -- JRD_BUGCHK ('', 'BLKCHK', 'jrd.h', NULL, 15, 147, NULL, 'invalid block type encountered', NULL, NULL); (NULL, 'most', 'apollo.c', NULL, 15, 148, NULL, 'wrong packet type', NULL, 'Error message not currently in use.'); @@ -2669,6 +2691,8 @@ COMMIT WORK; ('rdb$triggers_rdb$flags_corrupt', 'MET_load_trigger', 'met.e', NULL, 15, 304, NULL, 'RDB$FLAGS for trigger @1 in RDB$TRIGGERS is corrupted', NULL, NULL); (NULL, NULL, NULL, NULL, 15, 305, NULL, 'Blobs accounting is inconsistent', NULL, NULL); (NULL, 'CMP_get_desc', 'cmp.cpp', NULL, 15, 306, NULL, 'Found array data type with more than 16 dimensions', NULL, NULL); +-- Do not change the arguments of the previous JRD_BUGCHK messages. +-- Write the new JRD_BUGCHK messages here. -- ISQL ('GEN_ERR', 'errmsg', 'isql.e', NULL, 17, 0, NULL, 'Statement failed, SQLCODE = @1', NULL, NULL); ('USAGE', 'ISQL_main', 'isql.epp', NULL, 17, 1, NULL, 'usage: isql [options] []', NULL, NULL); @@ -2856,6 +2880,8 @@ Fetches = !f', NULL, NULL); ('USAGE_NODBTRIGGERS', 'ISQL_main', 'isql.epp', NULL, 17, 154, NULL, ' -nod(btriggers) do not run database triggers', NULL, NULL); ('USAGE_TRUSTED', 'ISQL_main', 'isql.epp', NULL, 17, 155, NULL, ' -tr(usted) use Windows trusted authentication', NULL, NULL); ('BULK_PROMPT', 'bulk_insert_hack', 'isql.epp', NULL, 17, 156, NULL, 'BULK> ', NULL, NULL); +-- Do not change the arguments of the previous ISQL messages. +-- Write the new ISQL messages here. -- GSEC ('GsecMsg1', 'get_line', 'gsec.e', NULL, 18, 1, NULL, 'GSEC>', NULL, NULL); ('GsecMsg2', 'printhelp', 'gsec.e', 'This message is used in the Help display. It should be the same as number 1 (but in lower case).', 18, 2, NULL, 'gsec', NULL, NULL); @@ -2947,6 +2973,8 @@ Fetches = !f', NULL, NULL); ('GsecMsg88', 'printhelp', 'gsec.c', NULL, 18, 88, NULL, '-z', NULL, NULL); ('GsecMsg89', 'printhelp', 'gsec.c', NULL, 18, 89, NULL, 'displaying version number:', NULL, NULL); ('GsecMsg90', 'printhelp', 'gsec.c', NULL, 18, 90, NULL, 'z (interactive only)', NULL, NULL); +-- Do not change the arguments of the previous GSEC messages. +-- Write the new GSEC messages here. -- LICENSE ('license_no_file', 'NODE_license', 'jrd/node.c', NULL, 19, 0, NULL, 'The license file does not exist or could not be opened for read', NULL, NULL); ('stop_stop_1', 'not_licensed', 'jrd/node.c', 'This message has 20 leading space characters (2 tab chars and 4 '' '') in @@ -3011,6 +3039,8 @@ by 4 spaces, or sometimes 8 (one tab).', 19, 1, NULL, ' S T O P ('eval_server_license', 'cert_item structure', 'license.h', NULL, 19, 57, NULL, 'Evaluation InterBase Server license and simultaneous user license for five (5) users.', NULL, NULL); ('custom_license', 'certIitem structure', 'license.h', NULL, 19, 58, NULL, 'Customized license entry created by means other than entering a certificate ID/key.', NULL, NULL); ('license_eval_exists', 'isc_license_add', 'licentool.c', NULL, 19, 59, NULL, 'The evaluation license has already been used on this server. You need to purchase a non-evaluation license.', NULL, NULL); +-- Do not change the arguments of the previous LICENSE messages. +-- Write the new LICENSE messages here. -- DOS ('tcp_wsaeconnrefused', 'several', 'remote/inet.c', NULL, 20, 0, NULL, 'The connection request was refused. This can occur if the Firebird server is not started on the host machine.', NULL, NULL); ('tcp_wsaeintr', 'several', 'remote/inet.c', NULL, 20, 1, NULL, 'The request was canceled before completing.', NULL, NULL); @@ -3086,6 +3116,8 @@ by 4 spaces, or sometimes 8 (one tab).', 19, 1, NULL, ' S T O P ('TRA_SWEEP_MESSAGE', 'TRA_start', 'tra.c', NULL, 20, 71, NULL, 'Beginning database sweep, which can take a long time. This can be controlled by varying the sweep interval. Sweep?', NULL, NULL); ('TRA_MUST_SWEEP', 'TRA_start', 'tra.c', NULL, 20, 72, NULL, 'A sweep must be performed on this database before it can be started. Sweep?', NULL, NULL); ('dos_loc_not_enough_disk_space', '', 'jrd/windows.c', NULL, 20, 73, NULL, 'Not enough disk space remaining', NULL, NULL); +-- Do not change the arguments of the previous DOS messages. +-- Write the new DOS messages here. -- GSTAT ('gstat_unknown_switch', 'main', 'dba.e', NULL, 21, 1, NULL, 'found unknown switch', NULL, NULL); ('gstat_retry', 'main', 'dba.e', NULL, 21, 2, NULL, 'please retry, giving a database name', NULL, NULL); @@ -3126,6 +3158,8 @@ Analyzing database pages ...', NULL, NULL); ('gstat_password', '', 'dba.e', NULL, 21, 33, NULL, ' -p password', NULL, NULL); ('', 'main', 'dba.e', NULL, 21, 34, NULL, ' -r analyze average record and version length', NULL, NULL); ('', 'main', 'dba.e', NULL, 21, 35, NULL, ' -t tablename', NULL, NULL); +-- Do not change the arguments of the previous GSTAT messages. +-- Write the new GSTAT messages here. stop COMMIT WORK; diff --git a/src/msgs/system_errors2.sql b/src/msgs/system_errors2.sql index b56c9b9ba3c..c642847a3aa 100644 --- a/src/msgs/system_errors2.sql +++ b/src/msgs/system_errors2.sql @@ -640,6 +640,8 @@ set bulk_insert INSERT INTO SYSTEM_ERRORS (SQL_CODE, SQL_CLASS, SQL_SUBCLASS, FA (-829, '', '', 8, 210, NULL, 'dyn_dtype_conv_invalid', NULL, NULL) (-901, NULL, NULL, 8, 212, NULL, 'dyn_zero_len_id', NULL, NULL) (-901, NULL, NULL, 8, 232, NULL, 'dyn_wrong_gtt_scope', NULL, NULL) +(-829, NULL, NULL, 8, 244, NULL, 'dyn_scale_too_big', NULL, NULL) +(-829, NULL, NULL, 8, 245, NULL, 'dyn_precision_too_small', NULL, NULL) -- GBAK (-901, NULL, NULL, 12, 1, NULL, 'gbak_unknown_switch', NULL, NULL) (-901, NULL, NULL, 12, 2, NULL, 'gbak_page_size_missing', NULL, NULL)