diff --git a/lang_helpers/gds_codes.ftn b/lang_helpers/gds_codes.ftn index 10c9687e75..fc3fc25190 100644 --- a/lang_helpers/gds_codes.ftn +++ b/lang_helpers/gds_codes.ftn @@ -1106,6 +1106,8 @@ C -- PARAMETER (GDS__ctx_bad_argument = 335544846) INTEGER*4 GDS__identifier_too_long PARAMETER (GDS__identifier_too_long = 335544847) + INTEGER*4 GDS__except2 + PARAMETER (GDS__except2 = 335544848) INTEGER*4 GDS__gfix_db_name PARAMETER (GDS__gfix_db_name = 335740929) INTEGER*4 GDS__gfix_invalid_sw diff --git a/lang_helpers/gds_codes.pas b/lang_helpers/gds_codes.pas index 36b6a6487d..59a41a463f 100644 --- a/lang_helpers/gds_codes.pas +++ b/lang_helpers/gds_codes.pas @@ -560,6 +560,7 @@ const gds_ctx_too_big = 335544845; gds_ctx_bad_argument = 335544846; gds_identifier_too_long = 335544847; + gds_except2 = 335544848; gds_gfix_db_name = 335740929; gds_gfix_invalid_sw = 335740930; gds_gfix_incmp_sw = 335740932; diff --git a/src/include/gen/codetext.h b/src/include/gen/codetext.h index c5c6c57641..63052d4076 100644 --- a/src/include/gen/codetext.h +++ b/src/include/gen/codetext.h @@ -549,6 +549,7 @@ static const struct { {"ctx_too_big", 335544845}, {"ctx_bad_argument", 335544846}, {"identifier_too_long", 335544847}, + {"except2", 335544848}, {"gfix_db_name", 335740929}, {"gfix_invalid_sw", 335740930}, {"gfix_incmp_sw", 335740932}, diff --git a/src/include/gen/iberror.h b/src/include/gen/iberror.h index 3cc1ec766b..68b3764b42 100644 --- a/src/include/gen/iberror.h +++ b/src/include/gen/iberror.h @@ -582,6 +582,7 @@ const SLONG isc_ctx_namespace_invalid = 335544844L; const SLONG isc_ctx_too_big = 335544845L; const SLONG isc_ctx_bad_argument = 335544846L; const SLONG isc_identifier_too_long = 335544847L; +const SLONG isc_except2 = 335544848L; const SLONG isc_gfix_db_name = 335740929L; const SLONG isc_gfix_invalid_sw = 335740930L; const SLONG isc_gfix_incmp_sw = 335740932L; @@ -791,7 +792,7 @@ const SLONG isc_gstat_unexpected_eof = 336920580L; const SLONG isc_gstat_open_err = 336920605L; const SLONG isc_gstat_read_err = 336920606L; const SLONG isc_gstat_sysmemex = 336920607L; -const SLONG isc_err_max = 736; +const SLONG isc_err_max = 737; #else /* c definitions */ @@ -1343,6 +1344,7 @@ const SLONG isc_err_max = 736; #define isc_ctx_too_big 335544845L #define isc_ctx_bad_argument 335544846L #define isc_identifier_too_long 335544847L +#define isc_except2 335544848L #define isc_gfix_db_name 335740929L #define isc_gfix_invalid_sw 335740930L #define isc_gfix_incmp_sw 335740932L @@ -1552,7 +1554,7 @@ const SLONG isc_err_max = 736; #define isc_gstat_open_err 336920605L #define isc_gstat_read_err 336920606L #define isc_gstat_sysmemex 336920607L -#define isc_err_max 736 +#define isc_err_max 737 #endif diff --git a/src/include/gen/msgs.h b/src/include/gen/msgs.h index e00f5d5e6d..b242221e79 100644 --- a/src/include/gen/msgs.h +++ b/src/include/gen/msgs.h @@ -547,214 +547,215 @@ static const SCHAR * const messages[] = { "Too many context variables", /* 525, ctx_too_big */ "Invalid argument passed to %s", /* 526, ctx_bad_argument */ "BLR syntax error. Identifier %s... is too long", /* 527, identifier_too_long */ - "data base file name (%s) already given", /* 528, gfix_db_name */ - "invalid switch %s", /* 529, gfix_invalid_sw */ - "incompatible switch combination", /* 530, gfix_incmp_sw */ - "replay log pathname required", /* 531, gfix_replay_req */ - "number of page buffers for cache required", /* 532, gfix_pgbuf_req */ - "numeric value required", /* 533, gfix_val_req */ - "positive numeric value required", /* 534, gfix_pval_req */ - "number of transactions per sweep required", /* 535, gfix_trn_req */ - "\"full\" or \"reserve\" required", /* 536, gfix_full_req */ - "user name required", /* 537, gfix_usrname_req */ - "password required", /* 538, gfix_pass_req */ - "subsystem name", /* 539, gfix_subs_name */ - "\"wal\" required", /* 540, gfix_wal_req */ - "number of seconds required", /* 541, gfix_sec_req */ - "numeric value between 0 and 32767 inclusive required", /* 542, gfix_nval_req */ - "must specify type of shutdown", /* 543, gfix_type_shut */ - "please retry, specifying an option", /* 544, gfix_retry */ - "please retry, giving a database name", /* 545, gfix_retry_db */ - "internal block exceeds maximum size", /* 546, gfix_exceed_max */ - "corrupt pool", /* 547, gfix_corrupt_pool */ - "virtual memory exhausted", /* 548, gfix_mem_exhausted */ - "bad pool id", /* 549, gfix_bad_pool */ - "Transaction state %d not in valid range.", /* 550, gfix_trn_not_valid */ - "unexpected end of input", /* 551, gfix_unexp_eoi */ - "failed to reconnect to a transaction in database %s", /* 552, gfix_recon_fail */ - "Transaction description item unknown", /* 553, gfix_trn_unknown */ - "\"read_only\" or \"read_write\" required", /* 554, gfix_mode_req */ - " -sql_dialect set database dialect n", /* 555, gfix_opt_SQL_dialect */ - "Cannot SELECT RDB$DB_KEY from a stored procedure.", /* 556, dsql_dbkey_from_non_table */ - "Precision 10 to 18 changed from DOUBLE PRECISION in SQL dialect 1 to 64-bit scaled integer in SQL dialect 3", /* 557, dsql_transitional_numeric */ - "Use of %s expression that returns different results in dialect 1 and dialect 3", /* 558, dsql_dialect_warning_expr */ - "Database SQL dialect %d does not support reference to %s datatype", /* 559, sql_db_dialect_dtype_unsupport */ - "DB dialect %d and client dialect %d conflict with respect to numeric precision %d.", /* 560, isc_sql_dialect_conflict_num */ - "WARNING: Numeric literal %s is interpreted as a floating-point", /* 561, dsql_warning_number_ambiguous */ - "value in SQL dialect 1, but as an exact numeric value in SQL dialect 3.", /* 562, dsql_warning_number_ambiguous1 */ - "WARNING: NUMERIC and DECIMAL fields with precision 10 or greater are stored", /* 563, dsql_warn_precision_ambiguous */ - "as approximate floating-point values in SQL dialect 1, but as 64-bit", /* 564, dsql_warn_precision_ambiguous1 */ - "integers in SQL dialect 3.", /* 565, dsql_warn_precision_ambiguous2 */ - "Ambiguous field name between %s and %s", /* 566, dsql_ambiguous_field_name */ - "External function should have return position between 1 and %d", /* 567, dsql_udf_return_pos_err */ - "Label %s %s in the current scope", /* 568, dsql_invalid_label */ - "Datatypes %sare not comparable in expression %s", /* 569, dsql_datatypes_not_comparable */ - "Empty cursor name is not allowed", /* 570, dsql_cursor_invalid */ - "Statement already has a cursor %s assigned", /* 571, dsql_cursor_redefined */ - "Cursor %s is not found in the current context", /* 572, dsql_cursor_not_found */ - "Cursor %s already exists in the current context", /* 573, dsql_cursor_exists */ - "Relation %s is ambiguous in cursor %s", /* 574, dsql_cursor_rel_ambiguous */ - "Relation %s is not found in cursor %s", /* 575, dsql_cursor_rel_not_found */ - "Cursor is not open", /* 576, dsql_cursor_not_open */ - "SQL role %s does not exist", /* 577, dyn_role_does_not_exist */ - "user %s has no grant admin option on SQL role %s", /* 578, dyn_no_grant_admin_opt */ - "user %s is not a member of SQL role %s", /* 579, dyn_user_not_role_member */ - "%s is not the owner of SQL role %s", /* 580, dyn_delete_role_failed */ - "%s is a SQL role and not a user", /* 581, dyn_grant_role_to_user */ - "user name %s could not be used for SQL role", /* 582, dyn_inv_sql_role_name */ - "SQL role %s already exists", /* 583, dyn_dup_sql_role */ - "keyword %s can not be used as a SQL role name", /* 584, dyn_kywd_spec_for_role */ - "SQL roles are not supported in on older versions of the database. A backup and restore of the database is required.", /* 585, dyn_roles_not_supported */ - "Cannot rename domain %s to %s. A domain with that name already exists.", /* 586, dyn_domain_name_exists */ - "Cannot rename column %s to %s. A column with that name already exists in table %s.", /* 587, dyn_field_name_exists */ - "Column %s from table %s is referenced in %s", /* 588, dyn_dependency_exists */ - "Cannot change datatype for column %s. Changing datatype is not supported for BLOB or ARRAY columns.", /* 589, dyn_dtype_invalid */ - "New size specified for column %s must be at least %d characters.", /* 590, dyn_char_fld_too_small */ - "Cannot change datatype for %s. Conversion from base type %s to %s is not supported.", /* 591, dyn_invalid_dtype_conversion */ - "Cannot change datatype for column %s from a character type to a non-character type.", /* 592, dyn_dtype_conv_invalid */ - "Zero length identifiers are not allowed", /* 593, dyn_zero_len_id */ - "found unknown switch", /* 594, gbak_unknown_switch */ - "page size parameter missing", /* 595, gbak_page_size_missing */ - "Page size specified (%ld) greater than limit (8192 bytes)", /* 596, gbak_page_size_toobig */ - "redirect location for output is not specified", /* 597, gbak_redir_ouput_missing */ - "conflicting switches for backup/restore", /* 598, gbak_switches_conflict */ - "device type %s not known", /* 599, gbak_unknown_device */ - "protection is not there yet", /* 600, gbak_no_protection */ - "page size is allowed only on restore or create", /* 601, gbak_page_size_not_allowed */ - "multiple sources or destinations specified", /* 602, gbak_multi_source_dest */ - "requires both input and output filenames", /* 603, gbak_filename_missing */ - "input and output have the same name. Disallowed.", /* 604, gbak_dup_inout_names */ - "expected page size, encountered \"%s\"", /* 605, gbak_inv_page_size */ - "REPLACE specified, but the first file %s is a database", /* 606, gbak_db_specified */ - "database %s already exists. To replace it, use the -REP switch", /* 607, gbak_db_exists */ - "device type not specified", /* 608, gbak_unk_device */ - "gds_$blob_info failed", /* 609, gbak_blob_info_failed */ - "do not understand BLOB INFO item %ld", /* 610, gbak_unk_blob_item */ - "gds_$get_segment failed", /* 611, gbak_get_seg_failed */ - "gds_$close_blob failed", /* 612, gbak_close_blob_failed */ - "gds_$open_blob failed", /* 613, gbak_open_blob_failed */ - "Failed in put_blr_gen_id", /* 614, gbak_put_blr_gen_id_failed */ - "data type %ld not understood", /* 615, gbak_unk_type */ - "gds_$compile_request failed", /* 616, gbak_comp_req_failed */ - "gds_$start_request failed", /* 617, gbak_start_req_failed */ - " gds_$receive failed", /* 618, gbak_rec_failed */ - "gds_$release_request failed", /* 619, gbak_rel_req_failed */ - " gds_$database_info failed", /* 620, gbak_db_info_failed */ - "Expected database description record", /* 621, gbak_no_db_desc */ - "failed to create database %s", /* 622, gbak_db_create_failed */ - "RESTORE: decompression length error", /* 623, gbak_decomp_len_error */ - "cannot find table %s", /* 624, gbak_tbl_missing */ - "Cannot find column for BLOB", /* 625, gbak_blob_col_missing */ - "gds_$create_blob failed", /* 626, gbak_create_blob_failed */ - "gds_$put_segment failed", /* 627, gbak_put_seg_failed */ - "expected record length", /* 628, gbak_rec_len_exp */ - "wrong length record, expected %ld encountered %ld", /* 629, gbak_inv_rec_len */ - "expected data attribute", /* 630, gbak_exp_data_type */ - "Failed in store_blr_gen_id", /* 631, gbak_gen_id_failed */ - "do not recognize record type %ld", /* 632, gbak_unk_rec_type */ - "Expected backup version 1, 2, 3, 4, 5, 6, or 7. Found %ld", /* 633, gbak_inv_bkup_ver */ - "expected backup description record", /* 634, gbak_missing_bkup_desc */ - "string truncated", /* 635, gbak_string_trunc */ - " warning -- record could not be restored", /* 636, gbak_cant_rest_record */ - "gds_$send failed", /* 637, gbak_send_failed */ - "no table name for data", /* 638, gbak_no_tbl_name */ - "unexpected end of file on backup file", /* 639, gbak_unexp_eof */ - "database format %ld is too old to restore to", /* 640, gbak_db_format_too_old */ - "array dimension for column %s is invalid", /* 641, gbak_inv_array_dim */ - "Expected XDR record length", /* 642, gbak_xdr_len_expected */ - "cannot open backup file %s", /* 643, gbak_open_bkup_error */ - "cannot open status and error output file %s", /* 644, gbak_open_error */ - "blocking factor parameter missing", /* 645, gbak_missing_block_fac */ - "expected blocking factor, encountered \"%s\"", /* 646, gbak_inv_block_fac */ - "a blocking factor may not be used in conjunction with device CT", /* 647, gbak_block_fac_specified */ - "user name parameter missing", /* 648, gbak_missing_username */ - "password parameter missing", /* 649, gbak_missing_password */ - " missing parameter for the number of bytes to be skipped", /* 650, gbak_missing_skipped_bytes */ - "expected number of bytes to be skipped, encountered \"%s\"", /* 651, gbak_inv_skipped_bytes */ - "Bad attribute for RDB$CHARACTER_SETS", /* 652, gbak_err_restore_charset */ - "Bad attribute for RDB$COLLATIONS", /* 653, gbak_err_restore_collation */ - "Unexpected I/O error while reading from backup file", /* 654, gbak_read_error */ - "Unexpected I/O error while writing to backup file", /* 655, gbak_write_error */ - "could not drop database %s (database might be in use)", /* 656, gbak_db_in_use */ - "System memory exhausted", /* 657, gbak_sysmemex */ - "Bad attributes for restoring SQL role", /* 658, gbak_restore_role_failed */ - "SQL role parameter missing", /* 659, gbak_role_op_missing */ - "page buffers parameter missing", /* 660, gbak_page_buffers_missing */ - "expected page buffers, encountered \"%s\"", /* 661, gbak_page_buffers_wrong_param */ - "page buffers is allowed only on restore or create", /* 662, gbak_page_buffers_restore */ - "size specification either missing or incorrect for file %s", /* 663, gbak_inv_size */ - "file %s out of sequence", /* 664, gbak_file_outof_sequence */ - "can't join -- one of the files missing", /* 665, gbak_join_file_missing */ - " standard input is not supported when using join operation", /* 666, gbak_stdin_not_supptd */ - "standard output is not supported when using split operation", /* 667, gbak_stdout_not_supptd */ - "backup file %s might be corrupt", /* 668, gbak_bkup_corrupt */ - "database file specification missing", /* 669, gbak_unk_db_file_spec */ - "can't write a header record to file %s", /* 670, gbak_hdr_write_failed */ - "free disk space exhausted", /* 671, gbak_disk_space_ex */ - "file size given (%d) is less than minimum allowed (%d)", /* 672, gbak_size_lt_min */ - "service name parameter missing", /* 673, gbak_svc_name_missing */ - "Cannot restore over current database, must be SYSDBA or owner of the existing database.", /* 674, gbak_not_ownr */ - "\"read_only\" or \"read_write\" required", /* 675, gbak_mode_req */ - "just data ignore all constraints etc.", /* 676, gbak_just_data */ - "restoring data only ignoring foreign key, unique, not null & other constraints", /* 677, gbak_data_only */ - "unable to open database", /* 678, gsec_cant_open_db */ - "error in switch specifications", /* 679, gsec_switches_error */ - "no operation specified", /* 680, gsec_no_op_spec */ - "no user name specified", /* 681, gsec_no_usr_name */ - "add record error", /* 682, gsec_err_add */ - "modify record error", /* 683, gsec_err_modify */ - "find/modify record error", /* 684, gsec_err_find_mod */ - "record not found for user: %s", /* 685, gsec_err_rec_not_found */ - "delete record error", /* 686, gsec_err_delete */ - "find/delete record error", /* 687, gsec_err_find_del */ - "find/display record error", /* 688, gsec_err_find_disp */ - "invalid parameter, no switch defined", /* 689, gsec_inv_param */ - "operation already specified", /* 690, gsec_op_specified */ - "password already specified", /* 691, gsec_pw_specified */ - "uid already specified", /* 692, gsec_uid_specified */ - "gid already specified", /* 693, gsec_gid_specified */ - "project already specified", /* 694, gsec_proj_specified */ - "organization already specified", /* 695, gsec_org_specified */ - "first name already specified", /* 696, gsec_fname_specified */ - "middle name already specified", /* 697, gsec_mname_specified */ - "last name already specified", /* 698, gsec_lname_specified */ - "invalid switch specified", /* 699, gsec_inv_switch */ - "ambiguous switch specified", /* 700, gsec_amb_switch */ - "no operation specified for parameters", /* 701, gsec_no_op_specified */ - "no parameters allowed for this operation", /* 702, gsec_params_not_allowed */ - "incompatible switches specified", /* 703, gsec_incompat_switch */ - "Invalid user name (maximum 31 bytes allowed)", /* 704, gsec_inv_username */ - "Warning - maximum 8 significant bytes of password used", /* 705, gsec_inv_pw_length */ - "database already specified", /* 706, gsec_db_specified */ - "database administrator name already specified", /* 707, gsec_db_admin_specified */ - "database administrator password already specified", /* 708, gsec_db_admin_pw_specified */ - "SQL role name already specified", /* 709, gsec_sql_role_specified */ - "The license file does not exist or could not be opened for read", /* 710, license_no_file */ - "operation already specified", /* 711, license_op_specified */ - "no operation specified", /* 712, license_op_missing */ - "invalid switch", /* 713, license_inv_switch */ - "invalid switch combination", /* 714, license_inv_switch_combo */ - "illegal operation/switch combination", /* 715, license_inv_op_combo */ - "ambiguous switch", /* 716, license_amb_switch */ - "invalid parameter, no switch specified", /* 717, license_inv_parameter */ - "switch does not take any parameter", /* 718, license_param_specified */ - "switch requires a parameter", /* 719, license_param_req */ - "syntax error in command line", /* 720, license_syntx_error */ - "The certificate was not added. A duplicate ID exists in the license file.", /* 721, license_dup_id */ - "The certificate was not added. Invalid certificate ID / Key combination.", /* 722, license_inv_id_key */ - "The certificate was not removed. The key does not exist or corresponds to a temporary evaluation license.", /* 723, license_err_remove */ - "An error occurred updating the license file. Operation cancelled.", /* 724, license_err_update */ - "The certificate could not be validated based on the information given. Please recheck the ID and key information.", /* 725, license_err_convert */ - "Operation failed. An unknown error occurred.", /* 726, license_err_unk */ - "Add license operation failed, KEY: %s ID: %s", /* 727, license_svc_err_add */ - "Remove license operation failed, KEY: %s", /* 728, license_svc_err_remove */ - "The evaluation license has already been used on this server. You need to purchase a non-evaluation license.", /* 729, license_eval_exists */ - "found unknown switch", /* 730, gstat_unknown_switch */ - "please retry, giving a database name", /* 731, gstat_retry */ - "Wrong ODS version, expected %d, encountered %d", /* 732, gstat_wrong_ods */ - "Unexpected end of database file.", /* 733, gstat_unexpected_eof */ - "Can't open database file %s", /* 734, gstat_open_err */ - "Can't read a database page", /* 735, gstat_read_err */ - "System memory exhausted", /* 736, gstat_sysmemex */ + "exception %s", /* 528, except2 */ + "data base file name (%s) already given", /* 529, gfix_db_name */ + "invalid switch %s", /* 530, gfix_invalid_sw */ + "incompatible switch combination", /* 531, gfix_incmp_sw */ + "replay log pathname required", /* 532, gfix_replay_req */ + "number of page buffers for cache required", /* 533, gfix_pgbuf_req */ + "numeric value required", /* 534, gfix_val_req */ + "positive numeric value required", /* 535, gfix_pval_req */ + "number of transactions per sweep required", /* 536, gfix_trn_req */ + "\"full\" or \"reserve\" required", /* 537, gfix_full_req */ + "user name required", /* 538, gfix_usrname_req */ + "password required", /* 539, gfix_pass_req */ + "subsystem name", /* 540, gfix_subs_name */ + "\"wal\" required", /* 541, gfix_wal_req */ + "number of seconds required", /* 542, gfix_sec_req */ + "numeric value between 0 and 32767 inclusive required", /* 543, gfix_nval_req */ + "must specify type of shutdown", /* 544, gfix_type_shut */ + "please retry, specifying an option", /* 545, gfix_retry */ + "please retry, giving a database name", /* 546, gfix_retry_db */ + "internal block exceeds maximum size", /* 547, gfix_exceed_max */ + "corrupt pool", /* 548, gfix_corrupt_pool */ + "virtual memory exhausted", /* 549, gfix_mem_exhausted */ + "bad pool id", /* 550, gfix_bad_pool */ + "Transaction state %d not in valid range.", /* 551, gfix_trn_not_valid */ + "unexpected end of input", /* 552, gfix_unexp_eoi */ + "failed to reconnect to a transaction in database %s", /* 553, gfix_recon_fail */ + "Transaction description item unknown", /* 554, gfix_trn_unknown */ + "\"read_only\" or \"read_write\" required", /* 555, gfix_mode_req */ + " -sql_dialect set database dialect n", /* 556, gfix_opt_SQL_dialect */ + "Cannot SELECT RDB$DB_KEY from a stored procedure.", /* 557, dsql_dbkey_from_non_table */ + "Precision 10 to 18 changed from DOUBLE PRECISION in SQL dialect 1 to 64-bit scaled integer in SQL dialect 3", /* 558, dsql_transitional_numeric */ + "Use of %s expression that returns different results in dialect 1 and dialect 3", /* 559, dsql_dialect_warning_expr */ + "Database SQL dialect %d does not support reference to %s datatype", /* 560, sql_db_dialect_dtype_unsupport */ + "DB dialect %d and client dialect %d conflict with respect to numeric precision %d.", /* 561, isc_sql_dialect_conflict_num */ + "WARNING: Numeric literal %s is interpreted as a floating-point", /* 562, dsql_warning_number_ambiguous */ + "value in SQL dialect 1, but as an exact numeric value in SQL dialect 3.", /* 563, dsql_warning_number_ambiguous1 */ + "WARNING: NUMERIC and DECIMAL fields with precision 10 or greater are stored", /* 564, dsql_warn_precision_ambiguous */ + "as approximate floating-point values in SQL dialect 1, but as 64-bit", /* 565, dsql_warn_precision_ambiguous1 */ + "integers in SQL dialect 3.", /* 566, dsql_warn_precision_ambiguous2 */ + "Ambiguous field name between %s and %s", /* 567, dsql_ambiguous_field_name */ + "External function should have return position between 1 and %d", /* 568, dsql_udf_return_pos_err */ + "Label %s %s in the current scope", /* 569, dsql_invalid_label */ + "Datatypes %sare not comparable in expression %s", /* 570, dsql_datatypes_not_comparable */ + "Empty cursor name is not allowed", /* 571, dsql_cursor_invalid */ + "Statement already has a cursor %s assigned", /* 572, dsql_cursor_redefined */ + "Cursor %s is not found in the current context", /* 573, dsql_cursor_not_found */ + "Cursor %s already exists in the current context", /* 574, dsql_cursor_exists */ + "Relation %s is ambiguous in cursor %s", /* 575, dsql_cursor_rel_ambiguous */ + "Relation %s is not found in cursor %s", /* 576, dsql_cursor_rel_not_found */ + "Cursor is not open", /* 577, dsql_cursor_not_open */ + "SQL role %s does not exist", /* 578, dyn_role_does_not_exist */ + "user %s has no grant admin option on SQL role %s", /* 579, dyn_no_grant_admin_opt */ + "user %s is not a member of SQL role %s", /* 580, dyn_user_not_role_member */ + "%s is not the owner of SQL role %s", /* 581, dyn_delete_role_failed */ + "%s is a SQL role and not a user", /* 582, dyn_grant_role_to_user */ + "user name %s could not be used for SQL role", /* 583, dyn_inv_sql_role_name */ + "SQL role %s already exists", /* 584, dyn_dup_sql_role */ + "keyword %s can not be used as a SQL role name", /* 585, dyn_kywd_spec_for_role */ + "SQL roles are not supported in on older versions of the database. A backup and restore of the database is required.", /* 586, dyn_roles_not_supported */ + "Cannot rename domain %s to %s. A domain with that name already exists.", /* 587, dyn_domain_name_exists */ + "Cannot rename column %s to %s. A column with that name already exists in table %s.", /* 588, dyn_field_name_exists */ + "Column %s from table %s is referenced in %s", /* 589, dyn_dependency_exists */ + "Cannot change datatype for column %s. Changing datatype is not supported for BLOB or ARRAY columns.", /* 590, dyn_dtype_invalid */ + "New size specified for column %s must be at least %d characters.", /* 591, dyn_char_fld_too_small */ + "Cannot change datatype for %s. Conversion from base type %s to %s is not supported.", /* 592, dyn_invalid_dtype_conversion */ + "Cannot change datatype for column %s from a character type to a non-character type.", /* 593, dyn_dtype_conv_invalid */ + "Zero length identifiers are not allowed", /* 594, dyn_zero_len_id */ + "found unknown switch", /* 595, gbak_unknown_switch */ + "page size parameter missing", /* 596, gbak_page_size_missing */ + "Page size specified (%ld) greater than limit (8192 bytes)", /* 597, gbak_page_size_toobig */ + "redirect location for output is not specified", /* 598, gbak_redir_ouput_missing */ + "conflicting switches for backup/restore", /* 599, gbak_switches_conflict */ + "device type %s not known", /* 600, gbak_unknown_device */ + "protection is not there yet", /* 601, gbak_no_protection */ + "page size is allowed only on restore or create", /* 602, gbak_page_size_not_allowed */ + "multiple sources or destinations specified", /* 603, gbak_multi_source_dest */ + "requires both input and output filenames", /* 604, gbak_filename_missing */ + "input and output have the same name. Disallowed.", /* 605, gbak_dup_inout_names */ + "expected page size, encountered \"%s\"", /* 606, gbak_inv_page_size */ + "REPLACE specified, but the first file %s is a database", /* 607, gbak_db_specified */ + "database %s already exists. To replace it, use the -REP switch", /* 608, gbak_db_exists */ + "device type not specified", /* 609, gbak_unk_device */ + "gds_$blob_info failed", /* 610, gbak_blob_info_failed */ + "do not understand BLOB INFO item %ld", /* 611, gbak_unk_blob_item */ + "gds_$get_segment failed", /* 612, gbak_get_seg_failed */ + "gds_$close_blob failed", /* 613, gbak_close_blob_failed */ + "gds_$open_blob failed", /* 614, gbak_open_blob_failed */ + "Failed in put_blr_gen_id", /* 615, gbak_put_blr_gen_id_failed */ + "data type %ld not understood", /* 616, gbak_unk_type */ + "gds_$compile_request failed", /* 617, gbak_comp_req_failed */ + "gds_$start_request failed", /* 618, gbak_start_req_failed */ + " gds_$receive failed", /* 619, gbak_rec_failed */ + "gds_$release_request failed", /* 620, gbak_rel_req_failed */ + " gds_$database_info failed", /* 621, gbak_db_info_failed */ + "Expected database description record", /* 622, gbak_no_db_desc */ + "failed to create database %s", /* 623, gbak_db_create_failed */ + "RESTORE: decompression length error", /* 624, gbak_decomp_len_error */ + "cannot find table %s", /* 625, gbak_tbl_missing */ + "Cannot find column for BLOB", /* 626, gbak_blob_col_missing */ + "gds_$create_blob failed", /* 627, gbak_create_blob_failed */ + "gds_$put_segment failed", /* 628, gbak_put_seg_failed */ + "expected record length", /* 629, gbak_rec_len_exp */ + "wrong length record, expected %ld encountered %ld", /* 630, gbak_inv_rec_len */ + "expected data attribute", /* 631, gbak_exp_data_type */ + "Failed in store_blr_gen_id", /* 632, gbak_gen_id_failed */ + "do not recognize record type %ld", /* 633, gbak_unk_rec_type */ + "Expected backup version 1, 2, 3, 4, 5, 6, or 7. Found %ld", /* 634, gbak_inv_bkup_ver */ + "expected backup description record", /* 635, gbak_missing_bkup_desc */ + "string truncated", /* 636, gbak_string_trunc */ + " warning -- record could not be restored", /* 637, gbak_cant_rest_record */ + "gds_$send failed", /* 638, gbak_send_failed */ + "no table name for data", /* 639, gbak_no_tbl_name */ + "unexpected end of file on backup file", /* 640, gbak_unexp_eof */ + "database format %ld is too old to restore to", /* 641, gbak_db_format_too_old */ + "array dimension for column %s is invalid", /* 642, gbak_inv_array_dim */ + "Expected XDR record length", /* 643, gbak_xdr_len_expected */ + "cannot open backup file %s", /* 644, gbak_open_bkup_error */ + "cannot open status and error output file %s", /* 645, gbak_open_error */ + "blocking factor parameter missing", /* 646, gbak_missing_block_fac */ + "expected blocking factor, encountered \"%s\"", /* 647, gbak_inv_block_fac */ + "a blocking factor may not be used in conjunction with device CT", /* 648, gbak_block_fac_specified */ + "user name parameter missing", /* 649, gbak_missing_username */ + "password parameter missing", /* 650, gbak_missing_password */ + " missing parameter for the number of bytes to be skipped", /* 651, gbak_missing_skipped_bytes */ + "expected number of bytes to be skipped, encountered \"%s\"", /* 652, gbak_inv_skipped_bytes */ + "Bad attribute for RDB$CHARACTER_SETS", /* 653, gbak_err_restore_charset */ + "Bad attribute for RDB$COLLATIONS", /* 654, gbak_err_restore_collation */ + "Unexpected I/O error while reading from backup file", /* 655, gbak_read_error */ + "Unexpected I/O error while writing to backup file", /* 656, gbak_write_error */ + "could not drop database %s (database might be in use)", /* 657, gbak_db_in_use */ + "System memory exhausted", /* 658, gbak_sysmemex */ + "Bad attributes for restoring SQL role", /* 659, gbak_restore_role_failed */ + "SQL role parameter missing", /* 660, gbak_role_op_missing */ + "page buffers parameter missing", /* 661, gbak_page_buffers_missing */ + "expected page buffers, encountered \"%s\"", /* 662, gbak_page_buffers_wrong_param */ + "page buffers is allowed only on restore or create", /* 663, gbak_page_buffers_restore */ + "size specification either missing or incorrect for file %s", /* 664, gbak_inv_size */ + "file %s out of sequence", /* 665, gbak_file_outof_sequence */ + "can't join -- one of the files missing", /* 666, gbak_join_file_missing */ + " standard input is not supported when using join operation", /* 667, gbak_stdin_not_supptd */ + "standard output is not supported when using split operation", /* 668, gbak_stdout_not_supptd */ + "backup file %s might be corrupt", /* 669, gbak_bkup_corrupt */ + "database file specification missing", /* 670, gbak_unk_db_file_spec */ + "can't write a header record to file %s", /* 671, gbak_hdr_write_failed */ + "free disk space exhausted", /* 672, gbak_disk_space_ex */ + "file size given (%d) is less than minimum allowed (%d)", /* 673, gbak_size_lt_min */ + "service name parameter missing", /* 674, gbak_svc_name_missing */ + "Cannot restore over current database, must be SYSDBA or owner of the existing database.", /* 675, gbak_not_ownr */ + "\"read_only\" or \"read_write\" required", /* 676, gbak_mode_req */ + "just data ignore all constraints etc.", /* 677, gbak_just_data */ + "restoring data only ignoring foreign key, unique, not null & other constraints", /* 678, gbak_data_only */ + "unable to open database", /* 679, gsec_cant_open_db */ + "error in switch specifications", /* 680, gsec_switches_error */ + "no operation specified", /* 681, gsec_no_op_spec */ + "no user name specified", /* 682, gsec_no_usr_name */ + "add record error", /* 683, gsec_err_add */ + "modify record error", /* 684, gsec_err_modify */ + "find/modify record error", /* 685, gsec_err_find_mod */ + "record not found for user: %s", /* 686, gsec_err_rec_not_found */ + "delete record error", /* 687, gsec_err_delete */ + "find/delete record error", /* 688, gsec_err_find_del */ + "find/display record error", /* 689, gsec_err_find_disp */ + "invalid parameter, no switch defined", /* 690, gsec_inv_param */ + "operation already specified", /* 691, gsec_op_specified */ + "password already specified", /* 692, gsec_pw_specified */ + "uid already specified", /* 693, gsec_uid_specified */ + "gid already specified", /* 694, gsec_gid_specified */ + "project already specified", /* 695, gsec_proj_specified */ + "organization already specified", /* 696, gsec_org_specified */ + "first name already specified", /* 697, gsec_fname_specified */ + "middle name already specified", /* 698, gsec_mname_specified */ + "last name already specified", /* 699, gsec_lname_specified */ + "invalid switch specified", /* 700, gsec_inv_switch */ + "ambiguous switch specified", /* 701, gsec_amb_switch */ + "no operation specified for parameters", /* 702, gsec_no_op_specified */ + "no parameters allowed for this operation", /* 703, gsec_params_not_allowed */ + "incompatible switches specified", /* 704, gsec_incompat_switch */ + "Invalid user name (maximum 31 bytes allowed)", /* 705, gsec_inv_username */ + "Warning - maximum 8 significant bytes of password used", /* 706, gsec_inv_pw_length */ + "database already specified", /* 707, gsec_db_specified */ + "database administrator name already specified", /* 708, gsec_db_admin_specified */ + "database administrator password already specified", /* 709, gsec_db_admin_pw_specified */ + "SQL role name already specified", /* 710, gsec_sql_role_specified */ + "The license file does not exist or could not be opened for read", /* 711, license_no_file */ + "operation already specified", /* 712, license_op_specified */ + "no operation specified", /* 713, license_op_missing */ + "invalid switch", /* 714, license_inv_switch */ + "invalid switch combination", /* 715, license_inv_switch_combo */ + "illegal operation/switch combination", /* 716, license_inv_op_combo */ + "ambiguous switch", /* 717, license_amb_switch */ + "invalid parameter, no switch specified", /* 718, license_inv_parameter */ + "switch does not take any parameter", /* 719, license_param_specified */ + "switch requires a parameter", /* 720, license_param_req */ + "syntax error in command line", /* 721, license_syntx_error */ + "The certificate was not added. A duplicate ID exists in the license file.", /* 722, license_dup_id */ + "The certificate was not added. Invalid certificate ID / Key combination.", /* 723, license_inv_id_key */ + "The certificate was not removed. The key does not exist or corresponds to a temporary evaluation license.", /* 724, license_err_remove */ + "An error occurred updating the license file. Operation cancelled.", /* 725, license_err_update */ + "The certificate could not be validated based on the information given. Please recheck the ID and key information.", /* 726, license_err_convert */ + "Operation failed. An unknown error occurred.", /* 727, license_err_unk */ + "Add license operation failed, KEY: %s ID: %s", /* 728, license_svc_err_add */ + "Remove license operation failed, KEY: %s", /* 729, license_svc_err_remove */ + "The evaluation license has already been used on this server. You need to purchase a non-evaluation license.", /* 730, license_eval_exists */ + "found unknown switch", /* 731, gstat_unknown_switch */ + "please retry, giving a database name", /* 732, gstat_retry */ + "Wrong ODS version, expected %d, encountered %d", /* 733, gstat_wrong_ods */ + "Unexpected end of database file.", /* 734, gstat_unexpected_eof */ + "Can't open database file %s", /* 735, gstat_open_err */ + "Can't read a database page", /* 736, gstat_read_err */ + "System memory exhausted", /* 737, gstat_sysmemex */ 0 /* Null entry to terminate list */ }; diff --git a/src/include/gen/rdb_codes.h b/src/include/gen/rdb_codes.h index 2a837a14d2..a4f0a4d8ba 100644 --- a/src/include/gen/rdb_codes.h +++ b/src/include/gen/rdb_codes.h @@ -755,4 +755,5 @@ static SLONG user_codes[] = { 0, 0, 0, +0, }; diff --git a/src/include/gen/sql_code.h b/src/include/gen/sql_code.h index 6cfb5deb3b..49276ebb74 100644 --- a/src/include/gen/sql_code.h +++ b/src/include/gen/sql_code.h @@ -546,6 +546,7 @@ static const SSHORT gds__sql_code [] = { -901 /* 525 ctx_too_big */, -901 /* 526 ctx_bad_argument */, -901 /* 527 identifier_too_long */, +-836 /* 528 except2 */, -901 /* 1 gfix_db_name */, -901 /* 2 gfix_invalid_sw */, -901 /* 4 gfix_incmp_sw */, diff --git a/src/jrd/exe.cpp b/src/jrd/exe.cpp index 7ca273f0e5..df57193d49 100644 --- a/src/jrd/exe.cpp +++ b/src/jrd/exe.cpp @@ -2047,25 +2047,25 @@ static jrd_nod* looper(thread_db* tdbb, jrd_req* request, jrd_nod* in_node) switch (request->req_operation) { case jrd_req::req_evaluate: { - PsqlException* xcp_node = reinterpret_cast(node->nod_arg[e_xcp_desc]); - if (xcp_node) - { - /* PsqlException is defined, - so throw an exception */ - set_error(tdbb, &xcp_node->xcp_rpt[0], node->nod_arg[e_xcp_msg]); - } - else if (!request->req_last_xcp.success()) - { - /* PsqlException is undefined, but there was a known exception before, - so re-initiate it */ - set_error(tdbb, NULL, NULL); - } - else - { - /* PsqlException is undefined and there weren't any exceptions before, - so just do nothing */ - request->req_operation = jrd_req::req_return; - } + PsqlException* xcp_node = reinterpret_cast(node->nod_arg[e_xcp_desc]); + if (xcp_node) + { + /* PsqlException is defined, + so throw an exception */ + set_error(tdbb, &xcp_node->xcp_rpt[0], node->nod_arg[e_xcp_msg]); + } + else if (!request->req_last_xcp.success()) + { + /* PsqlException is undefined, but there was a known exception before, + so re-initiate it */ + set_error(tdbb, NULL, NULL); + } + else + { + /* PsqlException is undefined and there weren't any exceptions before, + so just do nothing */ + request->req_operation = jrd_req::req_return; + } } default: @@ -3696,7 +3696,8 @@ static void set_error(thread_db* tdbb, const xcp_repeat* exception, jrd_nod* msg const TEXT* s; - switch (exception->xcp_type) { + switch (exception->xcp_type) + { case xcp_sql_code: ERR_post(isc_sqlerr, isc_arg_number, exception->xcp_code, 0); @@ -3712,22 +3713,38 @@ static void set_error(thread_db* tdbb, const xcp_repeat* exception, jrd_nod* msg ERR_post(exception->xcp_code, 0); case xcp_xcp_code: + // CVC: If we have the exception name, use it instead of the number. + // Solves SF Bug #494981. MET_lookup_exception(tdbb, exception->xcp_code, name, temp, sizeof(temp)); if (message[0]) s = message; else if (temp[0]) s = temp; - else if (name.length()) - s = name.c_str(); + //else if (name.length()) + // s = name.c_str(); else s = NULL; - if (s) - ERR_post(isc_except, - isc_arg_number, exception->xcp_code, - isc_arg_gds, isc_random, isc_arg_string, ERR_cstring(s), - 0); + + if (name.length()) + { + if (s) + ERR_post(isc_except2, + isc_arg_string, ERR_cstring(name.c_str()), + isc_arg_gds, isc_random, isc_arg_string, ERR_cstring(s), + 0); + else + ERR_post(isc_except2, isc_arg_string, ERR_cstring(name.c_str()), 0); + } else - ERR_post(isc_except, isc_arg_number, exception->xcp_code, 0); + { + if (s) + ERR_post(isc_except, + isc_arg_number, exception->xcp_code, + isc_arg_gds, isc_random, isc_arg_string, ERR_cstring(s), + 0); + else + ERR_post(isc_except, isc_arg_number, exception->xcp_code, 0); + } } } diff --git a/src/msgs/facilities.sql b/src/msgs/facilities.sql index c724c33f79..2aa8ad56a9 100644 --- a/src/msgs/facilities.sql +++ b/src/msgs/facilities.sql @@ -1,5 +1,5 @@ /* MAX_NUMBER is the next number to be used, always one more than the highest message number. */ -INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES ('2005-04-27 14:20:20', 'JRD', 0, 528); +INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES ('2005-05-21 23:55:21', 'JRD', 0, 529); INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES ('1996-11-07 13:38:37', 'QLI', 1, 509); INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES ('1996-11-07 13:38:37', 'GDEF', 2, 345); INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES ('2004-04-02 21:18:26', 'GFIX', 3, 114); @@ -29,3 +29,4 @@ INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES ('20 INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES ('2001-10-10 18:05:16', 'GSTAT', 21, 36); COMMIT WORK; + diff --git a/src/msgs/messages.sql b/src/msgs/messages.sql index 0384858430..4141709207 100644 --- a/src/msgs/messages.sql +++ b/src/msgs/messages.sql @@ -2954,6 +2954,7 @@ INSERT INTO MESSAGES (SYMBOL, ROUTINE, MODULE, TRANS_NOTES, FAC_CODE, NUMBER, FL INSERT INTO MESSAGES (SYMBOL, ROUTINE, MODULE, TRANS_NOTES, FAC_CODE, NUMBER, FLAGS, TEXT, "ACTION", EXPLANATION) VALUES ('TIME_ERR', 'add_row()', 'isql.epp', NULL, 17, 114, NULL, 'Bad TIMESTAMP: %s', NULL, NULL); INSERT INTO MESSAGES (SYMBOL, ROUTINE, MODULE, TRANS_NOTES, FAC_CODE, NUMBER, FLAGS, TEXT, "ACTION", EXPLANATION) VALUES ('gbak_activating_idx', 'RESTORE_restore', 'restore.epp', NULL, 12, 285, NULL, ' activating and creating deferred index %s', NULL, NULL); INSERT INTO MESSAGES (SYMBOL, ROUTINE, MODULE, TRANS_NOTES, FAC_CODE, NUMBER, FLAGS, TEXT, "ACTION", EXPLANATION) VALUES ('NO_COMMENTS', 'SHOW_metadata', 'show.epp', NULL, 17, 115, NULL, 'There are no comments for objects in this database', NULL, NULL); +INSERT INTO MESSAGES (SYMBOL, ROUTINE, MODULE, TRANS_NOTES, FAC_CODE, NUMBER, FLAGS, TEXT, "ACTION", EXPLANATION) VALUES ('except2', 'looper', 'exe.cpp', NULL, 0, 528, NULL, 'exception %s', NULL, NULL); COMMIT WORK; diff --git a/src/msgs/system_errors.sql b/src/msgs/system_errors.sql index 485d7641a1..7fbebea15e 100644 --- a/src/msgs/system_errors.sql +++ b/src/msgs/system_errors.sql @@ -735,6 +735,7 @@ INSERT INTO SYSTEM_ERRORS (SQL_CODE, SQL_CLASS, SQL_SUBCLASS, NUMBER, FAC_CODE, INSERT INTO SYSTEM_ERRORS (SQL_CODE, SQL_CLASS, SQL_SUBCLASS, NUMBER, FAC_CODE, VMS_CODE, GDS_SYMBOL, SEVERITY, SEVERITY_TEXT) VALUES (-901, NULL, NULL, 525, 0, NULL, 'ctx_too_big', NULL, NULL); INSERT INTO SYSTEM_ERRORS (SQL_CODE, SQL_CLASS, SQL_SUBCLASS, NUMBER, FAC_CODE, VMS_CODE, GDS_SYMBOL, SEVERITY, SEVERITY_TEXT) VALUES (-901, NULL, NULL, 526, 0, NULL, 'ctx_bad_argument', NULL, NULL); INSERT INTO SYSTEM_ERRORS (SQL_CODE, SQL_CLASS, SQL_SUBCLASS, NUMBER, FAC_CODE, VMS_CODE, GDS_SYMBOL, SEVERITY, SEVERITY_TEXT) VALUES (-901, NULL, NULL, 527, 0, NULL, 'identifier_too_long', NULL, NULL); +INSERT INTO SYSTEM_ERRORS (SQL_CODE, SQL_CLASS, SQL_SUBCLASS, NUMBER, FAC_CODE, VMS_CODE, GDS_SYMBOL, SEVERITY, SEVERITY_TEXT) VALUES (-836, '', '', 528, 0, NULL, 'except2', NULL, NULL); COMMIT WORK;