diff --git a/lang_helpers/gds_codes.ftn b/lang_helpers/gds_codes.ftn index ebacc07e05..a3552c17a8 100644 --- a/lang_helpers/gds_codes.ftn +++ b/lang_helpers/gds_codes.ftn @@ -1146,6 +1146,8 @@ C -- PARAMETER (GDS__met_wrong_gtt_scope = 335544866) INTEGER*4 GDS__subtype_for_internal_use PARAMETER (GDS__subtype_for_internal_use = 335544867) + INTEGER*4 GDS__illegal_prc_type + PARAMETER (GDS__illegal_prc_type = 335544868) 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 d06c5bec7d..d1a452a7d5 100644 --- a/lang_helpers/gds_codes.pas +++ b/lang_helpers/gds_codes.pas @@ -580,6 +580,7 @@ const gds_field_disappeared = 335544865; gds_met_wrong_gtt_scope = 335544866; gds_subtype_for_internal_use = 335544867; + gds_illegal_prc_type = 335544868; 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 6e1e45a765..b8f75a9330 100644 --- a/src/include/gen/codetext.h +++ b/src/include/gen/codetext.h @@ -569,6 +569,7 @@ static const struct { {"field_disappeared", 335544865}, {"met_wrong_gtt_scope", 335544866}, {"subtype_for_internal_use", 335544867}, + {"illegal_prc_type", 335544868}, {"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 2190e411d6..6ffdcc19db 100644 --- a/src/include/gen/iberror.h +++ b/src/include/gen/iberror.h @@ -602,6 +602,7 @@ const ISC_LONG isc_tra_num_exc = 335544864L; const ISC_LONG isc_field_disappeared = 335544865L; const ISC_LONG isc_met_wrong_gtt_scope = 335544866L; const ISC_LONG isc_subtype_for_internal_use = 335544867L; +const ISC_LONG isc_illegal_prc_type = 335544868L; const ISC_LONG isc_gfix_db_name = 335740929L; const ISC_LONG isc_gfix_invalid_sw = 335740930L; const ISC_LONG isc_gfix_incmp_sw = 335740932L; @@ -821,7 +822,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 = 766; +const ISC_LONG isc_err_max = 767; #else /* c definitions */ @@ -1393,6 +1394,7 @@ const ISC_LONG isc_err_max = 766; #define isc_field_disappeared 335544865L #define isc_met_wrong_gtt_scope 335544866L #define isc_subtype_for_internal_use 335544867L +#define isc_illegal_prc_type 335544868L #define isc_gfix_db_name 335740929L #define isc_gfix_invalid_sw 335740930L #define isc_gfix_incmp_sw 335740932L @@ -1612,7 +1614,7 @@ const ISC_LONG isc_err_max = 766; #define isc_gstat_open_err 336920605L #define isc_gstat_read_err 336920606L #define isc_gstat_sysmemex 336920607L -#define isc_err_max 766 +#define isc_err_max 767 #endif diff --git a/src/include/gen/msgs.h b/src/include/gen/msgs.h index 0247e444d8..438eb11156 100644 --- a/src/include/gen/msgs.h +++ b/src/include/gen/msgs.h @@ -569,224 +569,225 @@ static const struct { {335544865, "Column has been unexpectedly deleted"}, /* 545, field_disappeared */ {335544866, "%s cannot depend on %s"}, /* 546, met_wrong_gtt_scope */ {335544867, "Blob sub_types bigger than 1 (text) are for internal use only"}, /* 547, subtype_for_internal_use */ - {335740929, "data base file name (%s) already given"}, /* 548, gfix_db_name */ - {335740930, "invalid switch %s"}, /* 549, gfix_invalid_sw */ - {335740932, "incompatible switch combination"}, /* 550, gfix_incmp_sw */ - {335740933, "replay log pathname required"}, /* 551, gfix_replay_req */ - {335740934, "number of page buffers for cache required"}, /* 552, gfix_pgbuf_req */ - {335740935, "numeric value required"}, /* 553, gfix_val_req */ - {335740936, "positive numeric value required"}, /* 554, gfix_pval_req */ - {335740937, "number of transactions per sweep required"}, /* 555, gfix_trn_req */ - {335740940, "\"full\" or \"reserve\" required"}, /* 556, gfix_full_req */ - {335740941, "user name required"}, /* 557, gfix_usrname_req */ - {335740942, "password required"}, /* 558, gfix_pass_req */ - {335740943, "subsystem name"}, /* 559, gfix_subs_name */ - {335740944, "\"wal\" required"}, /* 560, gfix_wal_req */ - {335740945, "number of seconds required"}, /* 561, gfix_sec_req */ - {335740946, "numeric value between 0 and 32767 inclusive required"}, /* 562, gfix_nval_req */ - {335740947, "must specify type of shutdown"}, /* 563, gfix_type_shut */ - {335740948, "please retry, specifying an option"}, /* 564, gfix_retry */ - {335740951, "please retry, giving a database name"}, /* 565, gfix_retry_db */ - {335740991, "internal block exceeds maximum size"}, /* 566, gfix_exceed_max */ - {335740992, "corrupt pool"}, /* 567, gfix_corrupt_pool */ - {335740993, "virtual memory exhausted"}, /* 568, gfix_mem_exhausted */ - {335740994, "bad pool id"}, /* 569, gfix_bad_pool */ - {335740995, "Transaction state %d not in valid range."}, /* 570, gfix_trn_not_valid */ - {335741012, "unexpected end of input"}, /* 571, gfix_unexp_eoi */ - {335741018, "failed to reconnect to a transaction in database %s"}, /* 572, gfix_recon_fail */ - {335741036, "Transaction description item unknown"}, /* 573, gfix_trn_unknown */ - {335741038, "\"read_only\" or \"read_write\" required"}, /* 574, gfix_mode_req */ - {335741039, " -sql_dialect set database dialect n"}, /* 575, gfix_opt_SQL_dialect */ - {335741042, "positive or zero numeric value required"}, /* 576, gfix_pzval_req */ - {336003074, "Cannot SELECT RDB$DB_KEY from a stored procedure."}, /* 577, dsql_dbkey_from_non_table */ - {336003075, "Precision 10 to 18 changed from DOUBLE PRECISION in SQL dialect 1 to 64-bit scaled integer in SQL dialect 3"}, /* 578, dsql_transitional_numeric */ - {336003076, "Use of %s expression that returns different results in dialect 1 and dialect 3"}, /* 579, dsql_dialect_warning_expr */ - {336003077, "Database SQL dialect %d does not support reference to %s datatype"}, /* 580, sql_db_dialect_dtype_unsupport */ - {336003079, "DB dialect %d and client dialect %d conflict with respect to numeric precision %d."}, /* 581, isc_sql_dialect_conflict_num */ - {336003080, "WARNING: Numeric literal %s is interpreted as a floating-point"}, /* 582, dsql_warning_number_ambiguous */ - {336003081, "value in SQL dialect 1, but as an exact numeric value in SQL dialect 3."}, /* 583, dsql_warning_number_ambiguous1 */ - {336003082, "WARNING: NUMERIC and DECIMAL fields with precision 10 or greater are stored"}, /* 584, dsql_warn_precision_ambiguous */ - {336003083, "as approximate floating-point values in SQL dialect 1, but as 64-bit"}, /* 585, dsql_warn_precision_ambiguous1 */ - {336003084, "integers in SQL dialect 3."}, /* 586, dsql_warn_precision_ambiguous2 */ - {336003085, "Ambiguous field name between %s and %s"}, /* 587, dsql_ambiguous_field_name */ - {336003086, "External function should have return position between 1 and %d"}, /* 588, dsql_udf_return_pos_err */ - {336003087, "Label %s %s in the current scope"}, /* 589, dsql_invalid_label */ - {336003088, "Datatypes %sare not comparable in expression %s"}, /* 590, dsql_datatypes_not_comparable */ - {336003089, "Empty cursor name is not allowed"}, /* 591, dsql_cursor_invalid */ - {336003090, "Statement already has a cursor %s assigned"}, /* 592, dsql_cursor_redefined */ - {336003091, "Cursor %s is not found in the current context"}, /* 593, dsql_cursor_not_found */ - {336003092, "Cursor %s already exists in the current context"}, /* 594, dsql_cursor_exists */ - {336003093, "Relation %s is ambiguous in cursor %s"}, /* 595, dsql_cursor_rel_ambiguous */ - {336003094, "Relation %s is not found in cursor %s"}, /* 596, dsql_cursor_rel_not_found */ - {336003095, "Cursor is not open"}, /* 597, dsql_cursor_not_open */ - {336003096, "Data type %s is not supported for EXTERNAL TABLES. Relation '%s', field '%s'"}, /* 598, dsql_type_not_supp_ext_tab */ - {336068796, "SQL role %s does not exist"}, /* 599, dyn_role_does_not_exist */ - {336068797, "user %s has no grant admin option on SQL role %s"}, /* 600, dyn_no_grant_admin_opt */ - {336068798, "user %s is not a member of SQL role %s"}, /* 601, dyn_user_not_role_member */ - {336068799, "%s is not the owner of SQL role %s"}, /* 602, dyn_delete_role_failed */ - {336068800, "%s is a SQL role and not a user"}, /* 603, dyn_grant_role_to_user */ - {336068801, "user name %s could not be used for SQL role"}, /* 604, dyn_inv_sql_role_name */ - {336068802, "SQL role %s already exists"}, /* 605, dyn_dup_sql_role */ - {336068803, "keyword %s can not be used as a SQL role name"}, /* 606, dyn_kywd_spec_for_role */ - {336068804, "SQL roles are not supported in on older versions of the database. A backup and restore of the database is required."}, /* 607, dyn_roles_not_supported */ - {336068812, "Cannot rename domain %s to %s. A domain with that name already exists."}, /* 608, dyn_domain_name_exists */ - {336068813, "Cannot rename column %s to %s. A column with that name already exists in table %s."}, /* 609, dyn_field_name_exists */ - {336068814, "Column %s from table %s is referenced in %s"}, /* 610, dyn_dependency_exists */ - {336068815, "Cannot change datatype for column %s. Changing datatype is not supported for BLOB or ARRAY columns."}, /* 611, dyn_dtype_invalid */ - {336068816, "New size specified for column %s must be at least %d characters."}, /* 612, dyn_char_fld_too_small */ - {336068817, "Cannot change datatype for %s. Conversion from base type %s to %s is not supported."}, /* 613, dyn_invalid_dtype_conversion */ - {336068818, "Cannot change datatype for column %s from a character type to a non-character type."}, /* 614, dyn_dtype_conv_invalid */ - {336068820, "Zero length identifiers are not allowed"}, /* 615, dyn_zero_len_id */ - {336068840, "%s cannot reference %s"}, /* 616, dyn_wrong_gtt_scope */ - {336330753, "found unknown switch"}, /* 617, gbak_unknown_switch */ - {336330754, "page size parameter missing"}, /* 618, gbak_page_size_missing */ - {336330755, "Page size specified (%ld) greater than limit (16384 bytes)"}, /* 619, gbak_page_size_toobig */ - {336330756, "redirect location for output is not specified"}, /* 620, gbak_redir_ouput_missing */ - {336330757, "conflicting switches for backup/restore"}, /* 621, gbak_switches_conflict */ - {336330758, "device type %s not known"}, /* 622, gbak_unknown_device */ - {336330759, "protection is not there yet"}, /* 623, gbak_no_protection */ - {336330760, "page size is allowed only on restore or create"}, /* 624, gbak_page_size_not_allowed */ - {336330761, "multiple sources or destinations specified"}, /* 625, gbak_multi_source_dest */ - {336330762, "requires both input and output filenames"}, /* 626, gbak_filename_missing */ - {336330763, "input and output have the same name. Disallowed."}, /* 627, gbak_dup_inout_names */ - {336330764, "expected page size, encountered \"%s\""}, /* 628, gbak_inv_page_size */ - {336330765, "REPLACE specified, but the first file %s is a database"}, /* 629, gbak_db_specified */ - {336330766, "database %s already exists. To replace it, use the -REP switch"}, /* 630, gbak_db_exists */ - {336330767, "device type not specified"}, /* 631, gbak_unk_device */ - {336330772, "gds_$blob_info failed"}, /* 632, gbak_blob_info_failed */ - {336330773, "do not understand BLOB INFO item %ld"}, /* 633, gbak_unk_blob_item */ - {336330774, "gds_$get_segment failed"}, /* 634, gbak_get_seg_failed */ - {336330775, "gds_$close_blob failed"}, /* 635, gbak_close_blob_failed */ - {336330776, "gds_$open_blob failed"}, /* 636, gbak_open_blob_failed */ - {336330777, "Failed in put_blr_gen_id"}, /* 637, gbak_put_blr_gen_id_failed */ - {336330778, "data type %ld not understood"}, /* 638, gbak_unk_type */ - {336330779, "gds_$compile_request failed"}, /* 639, gbak_comp_req_failed */ - {336330780, "gds_$start_request failed"}, /* 640, gbak_start_req_failed */ - {336330781, " gds_$receive failed"}, /* 641, gbak_rec_failed */ - {336330782, "gds_$release_request failed"}, /* 642, gbak_rel_req_failed */ - {336330783, " gds_$database_info failed"}, /* 643, gbak_db_info_failed */ - {336330784, "Expected database description record"}, /* 644, gbak_no_db_desc */ - {336330785, "failed to create database %s"}, /* 645, gbak_db_create_failed */ - {336330786, "RESTORE: decompression length error"}, /* 646, gbak_decomp_len_error */ - {336330787, "cannot find table %s"}, /* 647, gbak_tbl_missing */ - {336330788, "Cannot find column for BLOB"}, /* 648, gbak_blob_col_missing */ - {336330789, "gds_$create_blob failed"}, /* 649, gbak_create_blob_failed */ - {336330790, "gds_$put_segment failed"}, /* 650, gbak_put_seg_failed */ - {336330791, "expected record length"}, /* 651, gbak_rec_len_exp */ - {336330792, "wrong length record, expected %ld encountered %ld"}, /* 652, gbak_inv_rec_len */ - {336330793, "expected data attribute"}, /* 653, gbak_exp_data_type */ - {336330794, "Failed in store_blr_gen_id"}, /* 654, gbak_gen_id_failed */ - {336330795, "do not recognize record type %ld"}, /* 655, gbak_unk_rec_type */ - {336330796, "Expected backup version 1, 2, 3, 4, 5, 6, or 7. Found %ld"}, /* 656, gbak_inv_bkup_ver */ - {336330797, "expected backup description record"}, /* 657, gbak_missing_bkup_desc */ - {336330798, "string truncated"}, /* 658, gbak_string_trunc */ - {336330799, " warning -- record could not be restored"}, /* 659, gbak_cant_rest_record */ - {336330800, "gds_$send failed"}, /* 660, gbak_send_failed */ - {336330801, "no table name for data"}, /* 661, gbak_no_tbl_name */ - {336330802, "unexpected end of file on backup file"}, /* 662, gbak_unexp_eof */ - {336330803, "database format %ld is too old to restore to"}, /* 663, gbak_db_format_too_old */ - {336330804, "array dimension for column %s is invalid"}, /* 664, gbak_inv_array_dim */ - {336330807, "Expected XDR record length"}, /* 665, gbak_xdr_len_expected */ - {336330817, "cannot open backup file %s"}, /* 666, gbak_open_bkup_error */ - {336330818, "cannot open status and error output file %s"}, /* 667, gbak_open_error */ - {336330934, "blocking factor parameter missing"}, /* 668, gbak_missing_block_fac */ - {336330935, "expected blocking factor, encountered \"%s\""}, /* 669, gbak_inv_block_fac */ - {336330936, "a blocking factor may not be used in conjunction with device CT"}, /* 670, gbak_block_fac_specified */ - {336330940, "user name parameter missing"}, /* 671, gbak_missing_username */ - {336330941, "password parameter missing"}, /* 672, gbak_missing_password */ - {336330952, " missing parameter for the number of bytes to be skipped"}, /* 673, gbak_missing_skipped_bytes */ - {336330953, "expected number of bytes to be skipped, encountered \"%s\""}, /* 674, gbak_inv_skipped_bytes */ - {336330965, "Bad attribute for RDB$CHARACTER_SETS"}, /* 675, gbak_err_restore_charset */ - {336330967, "Bad attribute for RDB$COLLATIONS"}, /* 676, gbak_err_restore_collation */ - {336330972, "Unexpected I/O error while reading from backup file"}, /* 677, gbak_read_error */ - {336330973, "Unexpected I/O error while writing to backup file"}, /* 678, gbak_write_error */ - {336330985, "could not drop database %s (database might be in use)"}, /* 679, gbak_db_in_use */ - {336330990, "System memory exhausted"}, /* 680, gbak_sysmemex */ - {336331002, "Bad attributes for restoring SQL role"}, /* 681, gbak_restore_role_failed */ - {336331005, "SQL role parameter missing"}, /* 682, gbak_role_op_missing */ - {336331010, "page buffers parameter missing"}, /* 683, gbak_page_buffers_missing */ - {336331011, "expected page buffers, encountered \"%s\""}, /* 684, gbak_page_buffers_wrong_param */ - {336331012, "page buffers is allowed only on restore or create"}, /* 685, gbak_page_buffers_restore */ - {336331014, "size specification either missing or incorrect for file %s"}, /* 686, gbak_inv_size */ - {336331015, "file %s out of sequence"}, /* 687, gbak_file_outof_sequence */ - {336331016, "can't join -- one of the files missing"}, /* 688, gbak_join_file_missing */ - {336331017, " standard input is not supported when using join operation"}, /* 689, gbak_stdin_not_supptd */ - {336331018, "standard output is not supported when using split operation"}, /* 690, gbak_stdout_not_supptd */ - {336331019, "backup file %s might be corrupt"}, /* 691, gbak_bkup_corrupt */ - {336331020, "database file specification missing"}, /* 692, gbak_unk_db_file_spec */ - {336331021, "can't write a header record to file %s"}, /* 693, gbak_hdr_write_failed */ - {336331022, "free disk space exhausted"}, /* 694, gbak_disk_space_ex */ - {336331023, "file size given (%d) is less than minimum allowed (%d)"}, /* 695, gbak_size_lt_min */ - {336331025, "service name parameter missing"}, /* 696, gbak_svc_name_missing */ - {336331026, "Cannot restore over current database, must be SYSDBA or owner of the existing database."}, /* 697, gbak_not_ownr */ - {336331031, "\"read_only\" or \"read_write\" required"}, /* 698, gbak_mode_req */ - {336331033, "just data ignore all constraints etc."}, /* 699, gbak_just_data */ - {336331034, "restoring data only ignoring foreign key, unique, not null & other constraints"}, /* 700, gbak_data_only */ - {336397205, "ODS versions before ODS%d are not supported"}, /* 701, dsql_too_old_ods */ - {336397206, "Table %s does not exist"}, /* 702, dsql_table_not_found */ - {336397207, "View %s does not exist"}, /* 703, dsql_view_not_found */ - {336397208, "At line %d, column %d"}, /* 704, dsql_line_col_error */ - {336397209, "At unknown line and column"}, /* 705, dsql_unknown_pos */ - {336397210, "Column %s cannot be repeated in %s statement"}, /* 706, dsql_no_dup_name */ - {336397211, "Too many values (more than %d) in member list to match against"}, /* 707, dsql_too_many_values */ - {336723983, "unable to open database"}, /* 708, gsec_cant_open_db */ - {336723984, "error in switch specifications"}, /* 709, gsec_switches_error */ - {336723985, "no operation specified"}, /* 710, gsec_no_op_spec */ - {336723986, "no user name specified"}, /* 711, gsec_no_usr_name */ - {336723987, "add record error"}, /* 712, gsec_err_add */ - {336723988, "modify record error"}, /* 713, gsec_err_modify */ - {336723989, "find/modify record error"}, /* 714, gsec_err_find_mod */ - {336723990, "record not found for user: %s"}, /* 715, gsec_err_rec_not_found */ - {336723991, "delete record error"}, /* 716, gsec_err_delete */ - {336723992, "find/delete record error"}, /* 717, gsec_err_find_del */ - {336723996, "find/display record error"}, /* 718, gsec_err_find_disp */ - {336723997, "invalid parameter, no switch defined"}, /* 719, gsec_inv_param */ - {336723998, "operation already specified"}, /* 720, gsec_op_specified */ - {336723999, "password already specified"}, /* 721, gsec_pw_specified */ - {336724000, "uid already specified"}, /* 722, gsec_uid_specified */ - {336724001, "gid already specified"}, /* 723, gsec_gid_specified */ - {336724002, "project already specified"}, /* 724, gsec_proj_specified */ - {336724003, "organization already specified"}, /* 725, gsec_org_specified */ - {336724004, "first name already specified"}, /* 726, gsec_fname_specified */ - {336724005, "middle name already specified"}, /* 727, gsec_mname_specified */ - {336724006, "last name already specified"}, /* 728, gsec_lname_specified */ - {336724008, "invalid switch specified"}, /* 729, gsec_inv_switch */ - {336724009, "ambiguous switch specified"}, /* 730, gsec_amb_switch */ - {336724010, "no operation specified for parameters"}, /* 731, gsec_no_op_specified */ - {336724011, "no parameters allowed for this operation"}, /* 732, gsec_params_not_allowed */ - {336724012, "incompatible switches specified"}, /* 733, gsec_incompat_switch */ - {336724044, "Invalid user name (maximum 31 bytes allowed)"}, /* 734, gsec_inv_username */ - {336724045, "Warning - maximum 8 significant bytes of password used"}, /* 735, gsec_inv_pw_length */ - {336724046, "database already specified"}, /* 736, gsec_db_specified */ - {336724047, "database administrator name already specified"}, /* 737, gsec_db_admin_specified */ - {336724048, "database administrator password already specified"}, /* 738, gsec_db_admin_pw_specified */ - {336724049, "SQL role name already specified"}, /* 739, gsec_sql_role_specified */ - {336789504, "The license file does not exist or could not be opened for read"}, /* 740, license_no_file */ - {336789523, "operation already specified"}, /* 741, license_op_specified */ - {336789524, "no operation specified"}, /* 742, license_op_missing */ - {336789525, "invalid switch"}, /* 743, license_inv_switch */ - {336789526, "invalid switch combination"}, /* 744, license_inv_switch_combo */ - {336789527, "illegal operation/switch combination"}, /* 745, license_inv_op_combo */ - {336789528, "ambiguous switch"}, /* 746, license_amb_switch */ - {336789529, "invalid parameter, no switch specified"}, /* 747, license_inv_parameter */ - {336789530, "switch does not take any parameter"}, /* 748, license_param_specified */ - {336789531, "switch requires a parameter"}, /* 749, license_param_req */ - {336789532, "syntax error in command line"}, /* 750, license_syntx_error */ - {336789534, "The certificate was not added. A duplicate ID exists in the license file."}, /* 751, license_dup_id */ - {336789535, "The certificate was not added. Invalid certificate ID / Key combination."}, /* 752, license_inv_id_key */ - {336789536, "The certificate was not removed. The key does not exist or corresponds to a temporary evaluation license."}, /* 753, license_err_remove */ - {336789537, "An error occurred updating the license file. Operation cancelled."}, /* 754, license_err_update */ - {336789538, "The certificate could not be validated based on the information given. Please recheck the ID and key information."}, /* 755, license_err_convert */ - {336789539, "Operation failed. An unknown error occurred."}, /* 756, license_err_unk */ - {336789540, "Add license operation failed, KEY: %s ID: %s"}, /* 757, license_svc_err_add */ - {336789541, "Remove license operation failed, KEY: %s"}, /* 758, license_svc_err_remove */ - {336789563, "The evaluation license has already been used on this server. You need to purchase a non-evaluation license."}, /* 759, license_eval_exists */ - {336920577, "found unknown switch"}, /* 760, gstat_unknown_switch */ - {336920578, "please retry, giving a database name"}, /* 761, gstat_retry */ - {336920579, "Wrong ODS version, expected %d, encountered %d"}, /* 762, gstat_wrong_ods */ - {336920580, "Unexpected end of database file."}, /* 763, gstat_unexpected_eof */ - {336920605, "Can't open database file %s"}, /* 764, gstat_open_err */ - {336920606, "Can't read a database page"}, /* 765, gstat_read_err */ - {336920607, "System memory exhausted"}, /* 766, gstat_sysmemex */ + {335544868, "Procedure %s is not selectable (it does not contain a SUSPEND statement)"}, /* 548, illegal_prc_type */ + {335740929, "data base file name (%s) already given"}, /* 549, gfix_db_name */ + {335740930, "invalid switch %s"}, /* 550, gfix_invalid_sw */ + {335740932, "incompatible switch combination"}, /* 551, gfix_incmp_sw */ + {335740933, "replay log pathname required"}, /* 552, gfix_replay_req */ + {335740934, "number of page buffers for cache required"}, /* 553, gfix_pgbuf_req */ + {335740935, "numeric value required"}, /* 554, gfix_val_req */ + {335740936, "positive numeric value required"}, /* 555, gfix_pval_req */ + {335740937, "number of transactions per sweep required"}, /* 556, gfix_trn_req */ + {335740940, "\"full\" or \"reserve\" required"}, /* 557, gfix_full_req */ + {335740941, "user name required"}, /* 558, gfix_usrname_req */ + {335740942, "password required"}, /* 559, gfix_pass_req */ + {335740943, "subsystem name"}, /* 560, gfix_subs_name */ + {335740944, "\"wal\" required"}, /* 561, gfix_wal_req */ + {335740945, "number of seconds required"}, /* 562, gfix_sec_req */ + {335740946, "numeric value between 0 and 32767 inclusive required"}, /* 563, gfix_nval_req */ + {335740947, "must specify type of shutdown"}, /* 564, gfix_type_shut */ + {335740948, "please retry, specifying an option"}, /* 565, gfix_retry */ + {335740951, "please retry, giving a database name"}, /* 566, gfix_retry_db */ + {335740991, "internal block exceeds maximum size"}, /* 567, gfix_exceed_max */ + {335740992, "corrupt pool"}, /* 568, gfix_corrupt_pool */ + {335740993, "virtual memory exhausted"}, /* 569, gfix_mem_exhausted */ + {335740994, "bad pool id"}, /* 570, gfix_bad_pool */ + {335740995, "Transaction state %d not in valid range."}, /* 571, gfix_trn_not_valid */ + {335741012, "unexpected end of input"}, /* 572, gfix_unexp_eoi */ + {335741018, "failed to reconnect to a transaction in database %s"}, /* 573, gfix_recon_fail */ + {335741036, "Transaction description item unknown"}, /* 574, gfix_trn_unknown */ + {335741038, "\"read_only\" or \"read_write\" required"}, /* 575, gfix_mode_req */ + {335741039, " -sql_dialect set database dialect n"}, /* 576, gfix_opt_SQL_dialect */ + {335741042, "positive or zero numeric value required"}, /* 577, gfix_pzval_req */ + {336003074, "Cannot SELECT RDB$DB_KEY from a stored procedure."}, /* 578, dsql_dbkey_from_non_table */ + {336003075, "Precision 10 to 18 changed from DOUBLE PRECISION in SQL dialect 1 to 64-bit scaled integer in SQL dialect 3"}, /* 579, dsql_transitional_numeric */ + {336003076, "Use of %s expression that returns different results in dialect 1 and dialect 3"}, /* 580, dsql_dialect_warning_expr */ + {336003077, "Database SQL dialect %d does not support reference to %s datatype"}, /* 581, sql_db_dialect_dtype_unsupport */ + {336003079, "DB dialect %d and client dialect %d conflict with respect to numeric precision %d."}, /* 582, isc_sql_dialect_conflict_num */ + {336003080, "WARNING: Numeric literal %s is interpreted as a floating-point"}, /* 583, dsql_warning_number_ambiguous */ + {336003081, "value in SQL dialect 1, but as an exact numeric value in SQL dialect 3."}, /* 584, dsql_warning_number_ambiguous1 */ + {336003082, "WARNING: NUMERIC and DECIMAL fields with precision 10 or greater are stored"}, /* 585, dsql_warn_precision_ambiguous */ + {336003083, "as approximate floating-point values in SQL dialect 1, but as 64-bit"}, /* 586, dsql_warn_precision_ambiguous1 */ + {336003084, "integers in SQL dialect 3."}, /* 587, dsql_warn_precision_ambiguous2 */ + {336003085, "Ambiguous field name between %s and %s"}, /* 588, dsql_ambiguous_field_name */ + {336003086, "External function should have return position between 1 and %d"}, /* 589, dsql_udf_return_pos_err */ + {336003087, "Label %s %s in the current scope"}, /* 590, dsql_invalid_label */ + {336003088, "Datatypes %sare not comparable in expression %s"}, /* 591, dsql_datatypes_not_comparable */ + {336003089, "Empty cursor name is not allowed"}, /* 592, dsql_cursor_invalid */ + {336003090, "Statement already has a cursor %s assigned"}, /* 593, dsql_cursor_redefined */ + {336003091, "Cursor %s is not found in the current context"}, /* 594, dsql_cursor_not_found */ + {336003092, "Cursor %s already exists in the current context"}, /* 595, dsql_cursor_exists */ + {336003093, "Relation %s is ambiguous in cursor %s"}, /* 596, dsql_cursor_rel_ambiguous */ + {336003094, "Relation %s is not found in cursor %s"}, /* 597, dsql_cursor_rel_not_found */ + {336003095, "Cursor is not open"}, /* 598, dsql_cursor_not_open */ + {336003096, "Data type %s is not supported for EXTERNAL TABLES. Relation '%s', field '%s'"}, /* 599, dsql_type_not_supp_ext_tab */ + {336068796, "SQL role %s does not exist"}, /* 600, dyn_role_does_not_exist */ + {336068797, "user %s has no grant admin option on SQL role %s"}, /* 601, dyn_no_grant_admin_opt */ + {336068798, "user %s is not a member of SQL role %s"}, /* 602, dyn_user_not_role_member */ + {336068799, "%s is not the owner of SQL role %s"}, /* 603, dyn_delete_role_failed */ + {336068800, "%s is a SQL role and not a user"}, /* 604, dyn_grant_role_to_user */ + {336068801, "user name %s could not be used for SQL role"}, /* 605, dyn_inv_sql_role_name */ + {336068802, "SQL role %s already exists"}, /* 606, dyn_dup_sql_role */ + {336068803, "keyword %s can not be used as a SQL role name"}, /* 607, dyn_kywd_spec_for_role */ + {336068804, "SQL roles are not supported in on older versions of the database. A backup and restore of the database is required."}, /* 608, dyn_roles_not_supported */ + {336068812, "Cannot rename domain %s to %s. A domain with that name already exists."}, /* 609, dyn_domain_name_exists */ + {336068813, "Cannot rename column %s to %s. A column with that name already exists in table %s."}, /* 610, dyn_field_name_exists */ + {336068814, "Column %s from table %s is referenced in %s"}, /* 611, dyn_dependency_exists */ + {336068815, "Cannot change datatype for column %s. Changing datatype is not supported for BLOB or ARRAY columns."}, /* 612, dyn_dtype_invalid */ + {336068816, "New size specified for column %s must be at least %d characters."}, /* 613, dyn_char_fld_too_small */ + {336068817, "Cannot change datatype for %s. Conversion from base type %s to %s is not supported."}, /* 614, dyn_invalid_dtype_conversion */ + {336068818, "Cannot change datatype for column %s from a character type to a non-character type."}, /* 615, dyn_dtype_conv_invalid */ + {336068820, "Zero length identifiers are not allowed"}, /* 616, dyn_zero_len_id */ + {336068840, "%s cannot reference %s"}, /* 617, dyn_wrong_gtt_scope */ + {336330753, "found unknown switch"}, /* 618, gbak_unknown_switch */ + {336330754, "page size parameter missing"}, /* 619, gbak_page_size_missing */ + {336330755, "Page size specified (%ld) greater than limit (16384 bytes)"}, /* 620, gbak_page_size_toobig */ + {336330756, "redirect location for output is not specified"}, /* 621, gbak_redir_ouput_missing */ + {336330757, "conflicting switches for backup/restore"}, /* 622, gbak_switches_conflict */ + {336330758, "device type %s not known"}, /* 623, gbak_unknown_device */ + {336330759, "protection is not there yet"}, /* 624, gbak_no_protection */ + {336330760, "page size is allowed only on restore or create"}, /* 625, gbak_page_size_not_allowed */ + {336330761, "multiple sources or destinations specified"}, /* 626, gbak_multi_source_dest */ + {336330762, "requires both input and output filenames"}, /* 627, gbak_filename_missing */ + {336330763, "input and output have the same name. Disallowed."}, /* 628, gbak_dup_inout_names */ + {336330764, "expected page size, encountered \"%s\""}, /* 629, gbak_inv_page_size */ + {336330765, "REPLACE specified, but the first file %s is a database"}, /* 630, gbak_db_specified */ + {336330766, "database %s already exists. To replace it, use the -REP switch"}, /* 631, gbak_db_exists */ + {336330767, "device type not specified"}, /* 632, gbak_unk_device */ + {336330772, "gds_$blob_info failed"}, /* 633, gbak_blob_info_failed */ + {336330773, "do not understand BLOB INFO item %ld"}, /* 634, gbak_unk_blob_item */ + {336330774, "gds_$get_segment failed"}, /* 635, gbak_get_seg_failed */ + {336330775, "gds_$close_blob failed"}, /* 636, gbak_close_blob_failed */ + {336330776, "gds_$open_blob failed"}, /* 637, gbak_open_blob_failed */ + {336330777, "Failed in put_blr_gen_id"}, /* 638, gbak_put_blr_gen_id_failed */ + {336330778, "data type %ld not understood"}, /* 639, gbak_unk_type */ + {336330779, "gds_$compile_request failed"}, /* 640, gbak_comp_req_failed */ + {336330780, "gds_$start_request failed"}, /* 641, gbak_start_req_failed */ + {336330781, " gds_$receive failed"}, /* 642, gbak_rec_failed */ + {336330782, "gds_$release_request failed"}, /* 643, gbak_rel_req_failed */ + {336330783, " gds_$database_info failed"}, /* 644, gbak_db_info_failed */ + {336330784, "Expected database description record"}, /* 645, gbak_no_db_desc */ + {336330785, "failed to create database %s"}, /* 646, gbak_db_create_failed */ + {336330786, "RESTORE: decompression length error"}, /* 647, gbak_decomp_len_error */ + {336330787, "cannot find table %s"}, /* 648, gbak_tbl_missing */ + {336330788, "Cannot find column for BLOB"}, /* 649, gbak_blob_col_missing */ + {336330789, "gds_$create_blob failed"}, /* 650, gbak_create_blob_failed */ + {336330790, "gds_$put_segment failed"}, /* 651, gbak_put_seg_failed */ + {336330791, "expected record length"}, /* 652, gbak_rec_len_exp */ + {336330792, "wrong length record, expected %ld encountered %ld"}, /* 653, gbak_inv_rec_len */ + {336330793, "expected data attribute"}, /* 654, gbak_exp_data_type */ + {336330794, "Failed in store_blr_gen_id"}, /* 655, gbak_gen_id_failed */ + {336330795, "do not recognize record type %ld"}, /* 656, gbak_unk_rec_type */ + {336330796, "Expected backup version 1..8. Found %ld"}, /* 657, gbak_inv_bkup_ver */ + {336330797, "expected backup description record"}, /* 658, gbak_missing_bkup_desc */ + {336330798, "string truncated"}, /* 659, gbak_string_trunc */ + {336330799, " warning -- record could not be restored"}, /* 660, gbak_cant_rest_record */ + {336330800, "gds_$send failed"}, /* 661, gbak_send_failed */ + {336330801, "no table name for data"}, /* 662, gbak_no_tbl_name */ + {336330802, "unexpected end of file on backup file"}, /* 663, gbak_unexp_eof */ + {336330803, "database format %ld is too old to restore to"}, /* 664, gbak_db_format_too_old */ + {336330804, "array dimension for column %s is invalid"}, /* 665, gbak_inv_array_dim */ + {336330807, "Expected XDR record length"}, /* 666, gbak_xdr_len_expected */ + {336330817, "cannot open backup file %s"}, /* 667, gbak_open_bkup_error */ + {336330818, "cannot open status and error output file %s"}, /* 668, gbak_open_error */ + {336330934, "blocking factor parameter missing"}, /* 669, gbak_missing_block_fac */ + {336330935, "expected blocking factor, encountered \"%s\""}, /* 670, gbak_inv_block_fac */ + {336330936, "a blocking factor may not be used in conjunction with device CT"}, /* 671, gbak_block_fac_specified */ + {336330940, "user name parameter missing"}, /* 672, gbak_missing_username */ + {336330941, "password parameter missing"}, /* 673, gbak_missing_password */ + {336330952, " missing parameter for the number of bytes to be skipped"}, /* 674, gbak_missing_skipped_bytes */ + {336330953, "expected number of bytes to be skipped, encountered \"%s\""}, /* 675, gbak_inv_skipped_bytes */ + {336330965, "Bad attribute for RDB$CHARACTER_SETS"}, /* 676, gbak_err_restore_charset */ + {336330967, "Bad attribute for RDB$COLLATIONS"}, /* 677, gbak_err_restore_collation */ + {336330972, "Unexpected I/O error while reading from backup file"}, /* 678, gbak_read_error */ + {336330973, "Unexpected I/O error while writing to backup file"}, /* 679, gbak_write_error */ + {336330985, "could not drop database %s (database might be in use)"}, /* 680, gbak_db_in_use */ + {336330990, "System memory exhausted"}, /* 681, gbak_sysmemex */ + {336331002, "Bad attributes for restoring SQL role"}, /* 682, gbak_restore_role_failed */ + {336331005, "SQL role parameter missing"}, /* 683, gbak_role_op_missing */ + {336331010, "page buffers parameter missing"}, /* 684, gbak_page_buffers_missing */ + {336331011, "expected page buffers, encountered \"%s\""}, /* 685, gbak_page_buffers_wrong_param */ + {336331012, "page buffers is allowed only on restore or create"}, /* 686, gbak_page_buffers_restore */ + {336331014, "size specification either missing or incorrect for file %s"}, /* 687, gbak_inv_size */ + {336331015, "file %s out of sequence"}, /* 688, gbak_file_outof_sequence */ + {336331016, "can't join -- one of the files missing"}, /* 689, gbak_join_file_missing */ + {336331017, " standard input is not supported when using join operation"}, /* 690, gbak_stdin_not_supptd */ + {336331018, "standard output is not supported when using split operation"}, /* 691, gbak_stdout_not_supptd */ + {336331019, "backup file %s might be corrupt"}, /* 692, gbak_bkup_corrupt */ + {336331020, "database file specification missing"}, /* 693, gbak_unk_db_file_spec */ + {336331021, "can't write a header record to file %s"}, /* 694, gbak_hdr_write_failed */ + {336331022, "free disk space exhausted"}, /* 695, gbak_disk_space_ex */ + {336331023, "file size given (%d) is less than minimum allowed (%d)"}, /* 696, gbak_size_lt_min */ + {336331025, "service name parameter missing"}, /* 697, gbak_svc_name_missing */ + {336331026, "Cannot restore over current database, must be SYSDBA or owner of the existing database."}, /* 698, gbak_not_ownr */ + {336331031, "\"read_only\" or \"read_write\" required"}, /* 699, gbak_mode_req */ + {336331033, "just data ignore all constraints etc."}, /* 700, gbak_just_data */ + {336331034, "restoring data only ignoring foreign key, unique, not null & other constraints"}, /* 701, gbak_data_only */ + {336397205, "ODS versions before ODS%d are not supported"}, /* 702, dsql_too_old_ods */ + {336397206, "Table %s does not exist"}, /* 703, dsql_table_not_found */ + {336397207, "View %s does not exist"}, /* 704, dsql_view_not_found */ + {336397208, "At line %d, column %d"}, /* 705, dsql_line_col_error */ + {336397209, "At unknown line and column"}, /* 706, dsql_unknown_pos */ + {336397210, "Column %s cannot be repeated in %s statement"}, /* 707, dsql_no_dup_name */ + {336397211, "Too many values (more than %d) in member list to match against"}, /* 708, dsql_too_many_values */ + {336723983, "unable to open database"}, /* 709, gsec_cant_open_db */ + {336723984, "error in switch specifications"}, /* 710, gsec_switches_error */ + {336723985, "no operation specified"}, /* 711, gsec_no_op_spec */ + {336723986, "no user name specified"}, /* 712, gsec_no_usr_name */ + {336723987, "add record error"}, /* 713, gsec_err_add */ + {336723988, "modify record error"}, /* 714, gsec_err_modify */ + {336723989, "find/modify record error"}, /* 715, gsec_err_find_mod */ + {336723990, "record not found for user: %s"}, /* 716, gsec_err_rec_not_found */ + {336723991, "delete record error"}, /* 717, gsec_err_delete */ + {336723992, "find/delete record error"}, /* 718, gsec_err_find_del */ + {336723996, "find/display record error"}, /* 719, gsec_err_find_disp */ + {336723997, "invalid parameter, no switch defined"}, /* 720, gsec_inv_param */ + {336723998, "operation already specified"}, /* 721, gsec_op_specified */ + {336723999, "password already specified"}, /* 722, gsec_pw_specified */ + {336724000, "uid already specified"}, /* 723, gsec_uid_specified */ + {336724001, "gid already specified"}, /* 724, gsec_gid_specified */ + {336724002, "project already specified"}, /* 725, gsec_proj_specified */ + {336724003, "organization already specified"}, /* 726, gsec_org_specified */ + {336724004, "first name already specified"}, /* 727, gsec_fname_specified */ + {336724005, "middle name already specified"}, /* 728, gsec_mname_specified */ + {336724006, "last name already specified"}, /* 729, gsec_lname_specified */ + {336724008, "invalid switch specified"}, /* 730, gsec_inv_switch */ + {336724009, "ambiguous switch specified"}, /* 731, gsec_amb_switch */ + {336724010, "no operation specified for parameters"}, /* 732, gsec_no_op_specified */ + {336724011, "no parameters allowed for this operation"}, /* 733, gsec_params_not_allowed */ + {336724012, "incompatible switches specified"}, /* 734, gsec_incompat_switch */ + {336724044, "Invalid user name (maximum 31 bytes allowed)"}, /* 735, gsec_inv_username */ + {336724045, "Warning - maximum 8 significant bytes of password used"}, /* 736, gsec_inv_pw_length */ + {336724046, "database already specified"}, /* 737, gsec_db_specified */ + {336724047, "database administrator name already specified"}, /* 738, gsec_db_admin_specified */ + {336724048, "database administrator password already specified"}, /* 739, gsec_db_admin_pw_specified */ + {336724049, "SQL role name already specified"}, /* 740, gsec_sql_role_specified */ + {336789504, "The license file does not exist or could not be opened for read"}, /* 741, license_no_file */ + {336789523, "operation already specified"}, /* 742, license_op_specified */ + {336789524, "no operation specified"}, /* 743, license_op_missing */ + {336789525, "invalid switch"}, /* 744, license_inv_switch */ + {336789526, "invalid switch combination"}, /* 745, license_inv_switch_combo */ + {336789527, "illegal operation/switch combination"}, /* 746, license_inv_op_combo */ + {336789528, "ambiguous switch"}, /* 747, license_amb_switch */ + {336789529, "invalid parameter, no switch specified"}, /* 748, license_inv_parameter */ + {336789530, "switch does not take any parameter"}, /* 749, license_param_specified */ + {336789531, "switch requires a parameter"}, /* 750, license_param_req */ + {336789532, "syntax error in command line"}, /* 751, license_syntx_error */ + {336789534, "The certificate was not added. A duplicate ID exists in the license file."}, /* 752, license_dup_id */ + {336789535, "The certificate was not added. Invalid certificate ID / Key combination."}, /* 753, license_inv_id_key */ + {336789536, "The certificate was not removed. The key does not exist or corresponds to a temporary evaluation license."}, /* 754, license_err_remove */ + {336789537, "An error occurred updating the license file. Operation cancelled."}, /* 755, license_err_update */ + {336789538, "The certificate could not be validated based on the information given. Please recheck the ID and key information."}, /* 756, license_err_convert */ + {336789539, "Operation failed. An unknown error occurred."}, /* 757, license_err_unk */ + {336789540, "Add license operation failed, KEY: %s ID: %s"}, /* 758, license_svc_err_add */ + {336789541, "Remove license operation failed, KEY: %s"}, /* 759, license_svc_err_remove */ + {336789563, "The evaluation license has already been used on this server. You need to purchase a non-evaluation license."}, /* 760, license_eval_exists */ + {336920577, "found unknown switch"}, /* 761, gstat_unknown_switch */ + {336920578, "please retry, giving a database name"}, /* 762, gstat_retry */ + {336920579, "Wrong ODS version, expected %d, encountered %d"}, /* 763, gstat_wrong_ods */ + {336920580, "Unexpected end of database file."}, /* 764, gstat_unexpected_eof */ + {336920605, "Can't open database file %s"}, /* 765, gstat_open_err */ + {336920606, "Can't read a database page"}, /* 766, gstat_read_err */ + {336920607, "System memory exhausted"}, /* 767, gstat_sysmemex */ {0, NULL} }; diff --git a/src/include/gen/rdb_codes.h b/src/include/gen/rdb_codes.h index 81f5f6896f..eb0cb7c6e3 100644 --- a/src/include/gen/rdb_codes.h +++ b/src/include/gen/rdb_codes.h @@ -785,4 +785,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 54753855ca..6e9ec44431 100644 --- a/src/include/gen/sql_code.h +++ b/src/include/gen/sql_code.h @@ -568,6 +568,7 @@ static const struct { {335544865, -904}, /* 545 field_disappeared */ {335544866, -901}, /* 546 met_wrong_gtt_scope */ {335544867, -204}, /* 547 subtype_for_internal_use */ + {335544868, -901}, /* 548 illegal_prc_type */ {335740929, -901}, /* 1 gfix_db_name */ {335740930, -901}, /* 2 gfix_invalid_sw */ {335740932, -901}, /* 4 gfix_incmp_sw */ diff --git a/src/jrd/irq.h b/src/jrd/irq.h index d952677165..2608e776a9 100644 --- a/src/jrd/irq.h +++ b/src/jrd/irq.h @@ -113,7 +113,8 @@ const int irq_m_index_seg = 75; /* modify per-segment index selectivity */ const int irq_l_subtype = 76; /* lookup subtype (charset/collation) */ const int irq_c_relation2 = 77; /* create new relation */ const int irq_r_type = 78; /* lookup relation type */ +const int irq_p_type = 79; /* lookup procedure type */ -const int irq_MAX = 79; +const int irq_MAX = 80; #endif /* JRD_IRQ_H */ diff --git a/src/jrd/jrd.h b/src/jrd/jrd.h index 6bac54baad..813c464654 100644 --- a/src/jrd/jrd.h +++ b/src/jrd/jrd.h @@ -103,6 +103,7 @@ class CharSetContainer; struct dsc; struct thread; struct mod; +enum prc_t; namespace Jrd { @@ -581,6 +582,7 @@ class jrd_prc : public pool_alloc Format* prc_format; vec* prc_input_fields; /* vector of field blocks */ vec* prc_output_fields; /* vector of field blocks */ + prc_t prc_type; /* procedure type */ jrd_req* prc_request; /* compiled procedure request */ USHORT prc_use_count; /* requests compiled with procedure */ SSHORT prc_int_use_count; /* number of procedures compiled with procedure, set and diff --git a/src/jrd/met.epp b/src/jrd/met.epp index 43eda76596..b007fad1b4 100644 --- a/src/jrd/met.epp +++ b/src/jrd/met.epp @@ -2719,6 +2719,7 @@ jrd_prc* MET_procedure(thread_db* tdbb, int id, bool noscan, USHORT flags) { jrd_req* request = CMP_find_request(tdbb, irq_r_procedure, IRQ_REQUESTS); jrd_req* request2 = CMP_find_request(tdbb, irq_r_params, IRQ_REQUESTS); + jrd_req* request3 = CMP_find_request(tdbb, irq_p_type, IRQ_REQUESTS); FOR(REQUEST_HANDLE request) P IN RDB$PROCEDURES WITH P.RDB$PROCEDURE_ID EQ procedure->prc_id @@ -2830,6 +2831,31 @@ jrd_prc* MET_procedure(thread_db* tdbb, int id, bool noscan, USHORT flags) format->fmt_length = (USHORT) length; } + prc_t prc_type = prc_legacy; + + if (ENCODE_ODS(dbb->dbb_ods_version, dbb->dbb_minor_original) >= ODS_11_1) + { + FOR(REQUEST_HANDLE request3) + PT IN RDB$PROCEDURES + WITH PT.RDB$PROCEDURE_ID EQ procedure->prc_id + AND PT.RDB$PROCEDURE_TYPE NOT MISSING + + if (!REQUEST(irq_p_type)) + { + REQUEST(irq_p_type) = request3; + } + + prc_type = (prc_t) PT.RDB$PROCEDURE_TYPE; + + END_FOR; + + if (!REQUEST(irq_p_type)) { + REQUEST(irq_p_type) = request3; + } + } + + procedure->prc_type = prc_type; + { Jrd::ContextPoolHolder context(tdbb, JrdMemoryPool::createPool()); CompilerScratch* csb = CompilerScratch::newCsb(*tdbb->getDefaultPool(), 5); diff --git a/src/jrd/par.cpp b/src/jrd/par.cpp index d819236134..90a5f32e0e 100644 --- a/src/jrd/par.cpp +++ b/src/jrd/par.cpp @@ -42,6 +42,7 @@ #include #include "../jrd/jrd.h" #include "../jrd/ibase.h" +#include "../jrd/ini.h" #include "../jrd/val.h" #include "../jrd/align.h" #include "../jrd/exe.h" @@ -1814,6 +1815,10 @@ static jrd_nod* par_procedure(thread_db* tdbb, CompilerScratch* csb, SSHORT blr_ error(csb, isc_prcnotdef, isc_arg_string, ERR_cstring(name), 0); } + if (procedure->prc_type == prc_executable) + error(csb, isc_illegal_prc_type, + isc_arg_string, ERR_string(procedure->prc_name), 0); + jrd_nod* node = PAR_make_node(tdbb, e_prc_length); node->nod_type = nod_procedure; node->nod_count = count_table[blr_procedure]; diff --git a/src/msgs/facilities.sql b/src/msgs/facilities.sql index c8d955d5c0..1365328006 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 ('2006-05-31 06:23:47', 'JRD', 0, 548); +INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES ('2006-05-31 06:23:47', 'JRD', 0, 549); INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES ('2005-09-02 00:55:59', 'QLI', 1, 513); 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 ('2005-07-20 04:04:04', 'GFIX', 3, 115); diff --git a/src/msgs/messages.sql b/src/msgs/messages.sql index 3a2edabd75..17f5c44d98 100644 --- a/src/msgs/messages.sql +++ b/src/msgs/messages.sql @@ -3038,5 +3038,6 @@ 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 ('subtype_for_internal_use', 'DDL_resolve_intl_type2', 'DSQL/ddl.cpp', NULL, 0, 547, NULL, 'Blob sub_types bigger than 1 (text) are for internal use only', NULL, NULL); INSERT INTO MESSAGES (SYMBOL, ROUTINE, MODULE, TRANS_NOTES, FAC_CODE, NUMBER, FLAGS, TEXT, "ACTION", EXPLANATION) VALUES (NULL, 'dyn_mod.epp', 'DYN_modify_sql_field', NULL, 8, 233, NULL, 'Local column %s is computed, cannot set a default value', NULL, NULL); INSERT INTO MESSAGES (SYMBOL, ROUTINE, MODULE, TRANS_NOTES, FAC_CODE, NUMBER, FLAGS, TEXT, "ACTION", EXPLANATION) VALUES ('NO_DEPENDENCIES', 'SHOW_metadata', 'show.epp', NULL, 17, 147, NULL, 'No dependencies for %s were found', NULL, NULL); +INSERT INTO MESSAGES (SYMBOL, ROUTINE, MODULE, TRANS_NOTES, FAC_CODE, NUMBER, FLAGS, TEXT, "ACTION", EXPLANATION) VALUES ('illegal_prc_type', 'par_procedure', 'par.cpp', NULL, 0, 548, NULL, 'Procedure %s is not selectable (it does not contain a SUSPEND statement)', NULL, NULL); COMMIT WORK; diff --git a/src/msgs/system_errors.sql b/src/msgs/system_errors.sql index 9b2abb62f9..d8f5e2ca89 100644 --- a/src/msgs/system_errors.sql +++ b/src/msgs/system_errors.sql @@ -765,5 +765,6 @@ 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, 232, 8, NULL, 'dyn_wrong_gtt_scope', 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, 546, 0, NULL, 'met_wrong_gtt_scope', NULL, NULL); INSERT INTO SYSTEM_ERRORS (SQL_CODE, SQL_CLASS, SQL_SUBCLASS, NUMBER, FAC_CODE, VMS_CODE, GDS_SYMBOL, SEVERITY, SEVERITY_TEXT) VALUES (-204, NULL, NULL, 547, 0, NULL, 'subtype_for_internal_use', 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, 548, 0, NULL, 'illegal_prc_type', NULL, NULL); COMMIT WORK;