8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-02-02 08:40:39 +01:00

CORE-1799: improve the almost useless "expression evaluation not supported" error message.

Did the JRD side except par.cpp because this part is covered by DSQL (only ESQL programs won't get the improved messages).
This commit is contained in:
robocop 2008-10-03 05:41:16 +00:00
parent 364fb47606
commit 586c3a6cde
16 changed files with 918 additions and 406 deletions

View File

@ -559,9 +559,9 @@ Format:
Notes:
1) If <length> is not specified, CHAR_LENGTH( <string2> ) is implied.
2) The OVERLAY function is equivalent to:
SUBSTRING(<string1>, 1 FOR <start> - 1) ||
SUBSTRING(<string1> FROM 1 FOR <start> - 1) ||
<string2> ||
SUBSTRING(<string1>, <start> + <length>)
SUBSTRING(<string1> FROM <start> + <length>)
--
@ -662,6 +662,7 @@ RIGHT
-----
Function:
RIGHT(string, length)
Returns the substring of a specified length that appears at the end of a string.
Format:
@ -678,6 +679,7 @@ ROUND
-----
Function:
ROUND(number, scale)
Returns a number rounded to the specified scale.
Format:
@ -807,6 +809,7 @@ TRUNC
-----
Function:
TRUNC(number, scale)
Returns the integral part (up to the specified scale) of a number.
Format:

View File

@ -1284,6 +1284,72 @@ C --
PARAMETER (GDS__circular_computed = 335544935)
INTEGER*4 GDS__psw_db_error
PARAMETER (GDS__psw_db_error = 335544936)
INTEGER*4 GDS__invalid_type_datetime_op
PARAMETER (GDS__invalid_type_datetime_op = 335544937)
INTEGER*4 GDS__onlycan_add_timetodate
PARAMETER (GDS__onlycan_add_timetodate = 335544938)
INTEGER*4 GDS__onlycan_add_datetotime
PARAMETER (GDS__onlycan_add_datetotime = 335544939)
INTEGER*4 GDS__onlycansub_tstampfromtstamp
PARAMETER (GDS__onlycansub_tstampfromtstamp = 335544940)
INTEGER*4 GDS__onlyoneop_mustbe_tstamp
PARAMETER (GDS__onlyoneop_mustbe_tstamp = 335544941)
INTEGER*4 GDS__invalid_extractpart_time
PARAMETER (GDS__invalid_extractpart_time = 335544942)
INTEGER*4 GDS__invalid_extractpart_date
PARAMETER (GDS__invalid_extractpart_date = 335544943)
INTEGER*4 GDS__invalidarg_extract
PARAMETER (GDS__invalidarg_extract = 335544944)
INTEGER*4 GDS__sysf_argmustbe_exact
PARAMETER (GDS__sysf_argmustbe_exact = 335544945)
INTEGER*4 GDS__sysf_argmustbe_exact_or_fp
PARAMETER (GDS__sysf_argmustbe_exact_or_fp = 335544946)
INTEGER*4 GDS__sysf_argviolates_uuidtype
PARAMETER (GDS__sysf_argviolates_uuidtype = 335544947)
INTEGER*4 GDS__sysf_argviolates_uuidlen
PARAMETER (GDS__sysf_argviolates_uuidlen = 335544948)
INTEGER*4 GDS__sysf_argviolates_uuidfmt
PARAMETER (GDS__sysf_argviolates_uuidfmt = 335544949)
INTEGER*4 GDS__sysf_argviolates_guidigits
PARAMETER (GDS__sysf_argviolates_guidigits = 335544950)
INTEGER*4 GDS__sysf_invalid_addpart_time
PARAMETER (GDS__sysf_invalid_addpart_time = 335544951)
INTEGER*4 GDS__sysf_invalid_add_datetime
PARAMETER (GDS__sysf_invalid_add_datetime = 335544952)
INTEGER*4 GDS__sysf_invalid_addpart_dtime
PARAMETER (GDS__sysf_invalid_addpart_dtime = 335544953)
INTEGER*4 GDS__sysf_invalid_add_dtime_rc
PARAMETER (GDS__sysf_invalid_add_dtime_rc = 335544954)
INTEGER*4 GDS__sysf_invalid_diff_dtime
PARAMETER (GDS__sysf_invalid_diff_dtime = 335544955)
INTEGER*4 GDS__sysf_invalid_timediff
PARAMETER (GDS__sysf_invalid_timediff = 335544956)
INTEGER*4 GDS__sysf_invalid_tstamptimediff
PARAMETER (GDS__sysf_invalid_tstamptimediff = 335544957)
INTEGER*4 GDS__sysf_invalid_datetimediff
PARAMETER (GDS__sysf_invalid_datetimediff = 335544958)
INTEGER*4 GDS__sysf_invalid_diffpart
PARAMETER (GDS__sysf_invalid_diffpart = 335544959)
INTEGER*4 GDS__sysf_argmustbe_positive
PARAMETER (GDS__sysf_argmustbe_positive = 335544960)
INTEGER*4 GDS__sysf_basemustbe_positive
PARAMETER (GDS__sysf_basemustbe_positive = 335544961)
INTEGER*4 GDS__sysf_argnmustbe_nonneg
PARAMETER (GDS__sysf_argnmustbe_nonneg = 335544962)
INTEGER*4 GDS__sysf_argnmustbe_positive
PARAMETER (GDS__sysf_argnmustbe_positive = 335544963)
INTEGER*4 GDS__sysf_invalid_zeropowneg
PARAMETER (GDS__sysf_invalid_zeropowneg = 335544964)
INTEGER*4 GDS__sysf_invalid_negpowfp
PARAMETER (GDS__sysf_invalid_negpowfp = 335544965)
INTEGER*4 GDS__sysf_invalid_scale
PARAMETER (GDS__sysf_invalid_scale = 335544966)
INTEGER*4 GDS__sysf_argmustbe_nonneg
PARAMETER (GDS__sysf_argmustbe_nonneg = 335544967)
INTEGER*4 GDS__sysf_binuuid_mustbe_str
PARAMETER (GDS__sysf_binuuid_mustbe_str = 335544968)
INTEGER*4 GDS__sysf_binuuid_wrongsize
PARAMETER (GDS__sysf_binuuid_wrongsize = 335544969)
INTEGER*4 GDS__gfix_db_name
PARAMETER (GDS__gfix_db_name = 335740929)
INTEGER*4 GDS__gfix_invalid_sw

View File

@ -649,6 +649,39 @@ const
gds_ibutil_not_loaded = 335544934;
gds_circular_computed = 335544935;
gds_psw_db_error = 335544936;
gds_invalid_type_datetime_op = 335544937;
gds_onlycan_add_timetodate = 335544938;
gds_onlycan_add_datetotime = 335544939;
gds_onlycansub_tstampfromtstamp = 335544940;
gds_onlyoneop_mustbe_tstamp = 335544941;
gds_invalid_extractpart_time = 335544942;
gds_invalid_extractpart_date = 335544943;
gds_invalidarg_extract = 335544944;
gds_sysf_argmustbe_exact = 335544945;
gds_sysf_argmustbe_exact_or_fp = 335544946;
gds_sysf_argviolates_uuidtype = 335544947;
gds_sysf_argviolates_uuidlen = 335544948;
gds_sysf_argviolates_uuidfmt = 335544949;
gds_sysf_argviolates_guidigits = 335544950;
gds_sysf_invalid_addpart_time = 335544951;
gds_sysf_invalid_add_datetime = 335544952;
gds_sysf_invalid_addpart_dtime = 335544953;
gds_sysf_invalid_add_dtime_rc = 335544954;
gds_sysf_invalid_diff_dtime = 335544955;
gds_sysf_invalid_timediff = 335544956;
gds_sysf_invalid_tstamptimediff = 335544957;
gds_sysf_invalid_datetimediff = 335544958;
gds_sysf_invalid_diffpart = 335544959;
gds_sysf_argmustbe_positive = 335544960;
gds_sysf_basemustbe_positive = 335544961;
gds_sysf_argnmustbe_nonneg = 335544962;
gds_sysf_argnmustbe_positive = 335544963;
gds_sysf_invalid_zeropowneg = 335544964;
gds_sysf_invalid_negpowfp = 335544965;
gds_sysf_invalid_scale = 335544966;
gds_sysf_argmustbe_nonneg = 335544967;
gds_sysf_binuuid_mustbe_str = 335544968;
gds_sysf_binuuid_wrongsize = 335544969;
gds_gfix_db_name = 335740929;
gds_gfix_invalid_sw = 335740930;
gds_gfix_incmp_sw = 335740932;

View File

@ -638,6 +638,39 @@ static const struct {
{"ibutil_not_loaded", 335544934},
{"circular_computed", 335544935},
{"psw_db_error", 335544936},
{"invalid_type_datetime_op", 335544937},
{"onlycan_add_timetodate", 335544938},
{"onlycan_add_datetotime", 335544939},
{"onlycansub_tstampfromtstamp", 335544940},
{"onlyoneop_mustbe_tstamp", 335544941},
{"invalid_extractpart_time", 335544942},
{"invalid_extractpart_date", 335544943},
{"invalidarg_extract", 335544944},
{"sysf_argmustbe_exact", 335544945},
{"sysf_argmustbe_exact_or_fp", 335544946},
{"sysf_argviolates_uuidtype", 335544947},
{"sysf_argviolates_uuidlen", 335544948},
{"sysf_argviolates_uuidfmt", 335544949},
{"sysf_argviolates_guidigits", 335544950},
{"sysf_invalid_addpart_time", 335544951},
{"sysf_invalid_add_datetime", 335544952},
{"sysf_invalid_addpart_dtime", 335544953},
{"sysf_invalid_add_dtime_rc", 335544954},
{"sysf_invalid_diff_dtime", 335544955},
{"sysf_invalid_timediff", 335544956},
{"sysf_invalid_tstamptimediff", 335544957},
{"sysf_invalid_datetimediff", 335544958},
{"sysf_invalid_diffpart", 335544959},
{"sysf_argmustbe_positive", 335544960},
{"sysf_basemustbe_positive", 335544961},
{"sysf_argnmustbe_nonneg", 335544962},
{"sysf_argnmustbe_positive", 335544963},
{"sysf_invalid_zeropowneg", 335544964},
{"sysf_invalid_negpowfp", 335544965},
{"sysf_invalid_scale", 335544966},
{"sysf_argmustbe_nonneg", 335544967},
{"sysf_binuuid_mustbe_str", 335544968},
{"sysf_binuuid_wrongsize", 335544969},
{"gfix_db_name", 335740929},
{"gfix_invalid_sw", 335740930},
{"gfix_incmp_sw", 335740932},

View File

@ -672,6 +672,39 @@ const ISC_STATUS isc_nothing_to_cancel = 335544933L;
const ISC_STATUS isc_ibutil_not_loaded = 335544934L;
const ISC_STATUS isc_circular_computed = 335544935L;
const ISC_STATUS isc_psw_db_error = 335544936L;
const ISC_STATUS isc_invalid_type_datetime_op = 335544937L;
const ISC_STATUS isc_onlycan_add_timetodate = 335544938L;
const ISC_STATUS isc_onlycan_add_datetotime = 335544939L;
const ISC_STATUS isc_onlycansub_tstampfromtstamp = 335544940L;
const ISC_STATUS isc_onlyoneop_mustbe_tstamp = 335544941L;
const ISC_STATUS isc_invalid_extractpart_time = 335544942L;
const ISC_STATUS isc_invalid_extractpart_date = 335544943L;
const ISC_STATUS isc_invalidarg_extract = 335544944L;
const ISC_STATUS isc_sysf_argmustbe_exact = 335544945L;
const ISC_STATUS isc_sysf_argmustbe_exact_or_fp = 335544946L;
const ISC_STATUS isc_sysf_argviolates_uuidtype = 335544947L;
const ISC_STATUS isc_sysf_argviolates_uuidlen = 335544948L;
const ISC_STATUS isc_sysf_argviolates_uuidfmt = 335544949L;
const ISC_STATUS isc_sysf_argviolates_guidigits = 335544950L;
const ISC_STATUS isc_sysf_invalid_addpart_time = 335544951L;
const ISC_STATUS isc_sysf_invalid_add_datetime = 335544952L;
const ISC_STATUS isc_sysf_invalid_addpart_dtime = 335544953L;
const ISC_STATUS isc_sysf_invalid_add_dtime_rc = 335544954L;
const ISC_STATUS isc_sysf_invalid_diff_dtime = 335544955L;
const ISC_STATUS isc_sysf_invalid_timediff = 335544956L;
const ISC_STATUS isc_sysf_invalid_tstamptimediff = 335544957L;
const ISC_STATUS isc_sysf_invalid_datetimediff = 335544958L;
const ISC_STATUS isc_sysf_invalid_diffpart = 335544959L;
const ISC_STATUS isc_sysf_argmustbe_positive = 335544960L;
const ISC_STATUS isc_sysf_basemustbe_positive = 335544961L;
const ISC_STATUS isc_sysf_argnmustbe_nonneg = 335544962L;
const ISC_STATUS isc_sysf_argnmustbe_positive = 335544963L;
const ISC_STATUS isc_sysf_invalid_zeropowneg = 335544964L;
const ISC_STATUS isc_sysf_invalid_negpowfp = 335544965L;
const ISC_STATUS isc_sysf_invalid_scale = 335544966L;
const ISC_STATUS isc_sysf_argmustbe_nonneg = 335544967L;
const ISC_STATUS isc_sysf_binuuid_mustbe_str = 335544968L;
const ISC_STATUS isc_sysf_binuuid_wrongsize = 335544969L;
const ISC_STATUS isc_gfix_db_name = 335740929L;
const ISC_STATUS isc_gfix_invalid_sw = 335740930L;
const ISC_STATUS isc_gfix_incmp_sw = 335740932L;
@ -962,7 +995,7 @@ const ISC_STATUS isc_fbsvcmgr_query_err = 336986117L;
const ISC_STATUS isc_fbsvcmgr_switch_unknown = 336986118L;
const ISC_STATUS isc_fbsvcmgr_bad_sm = 336986159L;
const ISC_STATUS isc_utl_trusted_switch = 337051649L;
const ISC_STATUS isc_err_max = 906;
const ISC_STATUS isc_err_max = 939;
#else /* c definitions */
@ -1604,6 +1637,39 @@ const ISC_STATUS isc_err_max = 906;
#define isc_ibutil_not_loaded 335544934L
#define isc_circular_computed 335544935L
#define isc_psw_db_error 335544936L
#define isc_invalid_type_datetime_op 335544937L
#define isc_onlycan_add_timetodate 335544938L
#define isc_onlycan_add_datetotime 335544939L
#define isc_onlycansub_tstampfromtstamp 335544940L
#define isc_onlyoneop_mustbe_tstamp 335544941L
#define isc_invalid_extractpart_time 335544942L
#define isc_invalid_extractpart_date 335544943L
#define isc_invalidarg_extract 335544944L
#define isc_sysf_argmustbe_exact 335544945L
#define isc_sysf_argmustbe_exact_or_fp 335544946L
#define isc_sysf_argviolates_uuidtype 335544947L
#define isc_sysf_argviolates_uuidlen 335544948L
#define isc_sysf_argviolates_uuidfmt 335544949L
#define isc_sysf_argviolates_guidigits 335544950L
#define isc_sysf_invalid_addpart_time 335544951L
#define isc_sysf_invalid_add_datetime 335544952L
#define isc_sysf_invalid_addpart_dtime 335544953L
#define isc_sysf_invalid_add_dtime_rc 335544954L
#define isc_sysf_invalid_diff_dtime 335544955L
#define isc_sysf_invalid_timediff 335544956L
#define isc_sysf_invalid_tstamptimediff 335544957L
#define isc_sysf_invalid_datetimediff 335544958L
#define isc_sysf_invalid_diffpart 335544959L
#define isc_sysf_argmustbe_positive 335544960L
#define isc_sysf_basemustbe_positive 335544961L
#define isc_sysf_argnmustbe_nonneg 335544962L
#define isc_sysf_argnmustbe_positive 335544963L
#define isc_sysf_invalid_zeropowneg 335544964L
#define isc_sysf_invalid_negpowfp 335544965L
#define isc_sysf_invalid_scale 335544966L
#define isc_sysf_argmustbe_nonneg 335544967L
#define isc_sysf_binuuid_mustbe_str 335544968L
#define isc_sysf_binuuid_wrongsize 335544969L
#define isc_gfix_db_name 335740929L
#define isc_gfix_invalid_sw 335740930L
#define isc_gfix_incmp_sw 335740932L
@ -1894,7 +1960,7 @@ const ISC_STATUS isc_err_max = 906;
#define isc_fbsvcmgr_switch_unknown 336986118L
#define isc_fbsvcmgr_bad_sm 336986159L
#define isc_utl_trusted_switch 337051649L
#define isc_err_max 906
#define isc_err_max 939
#endif

View File

@ -638,295 +638,328 @@ static const struct {
{335544934, "ib_util library has not been loaded to deallocate memory returned by FREE_IT function"}, /* 614, ibutil_not_loaded */
{335544935, "Cannot have circular dependencies with computed fields"}, /* 615, circular_computed */
{335544936, "Security database error"}, /* 616, psw_db_error */
{335740929, "data base file name (@1) already given"}, /* 617, gfix_db_name */
{335740930, "invalid switch @1"}, /* 618, gfix_invalid_sw */
{335740932, "incompatible switch combination"}, /* 619, gfix_incmp_sw */
{335740933, "replay log pathname required"}, /* 620, gfix_replay_req */
{335740934, "number of page buffers for cache required"}, /* 621, gfix_pgbuf_req */
{335740935, "numeric value required"}, /* 622, gfix_val_req */
{335740936, "positive numeric value required"}, /* 623, gfix_pval_req */
{335740937, "number of transactions per sweep required"}, /* 624, gfix_trn_req */
{335740940, "\"full\" or \"reserve\" required"}, /* 625, gfix_full_req */
{335740941, "user name required"}, /* 626, gfix_usrname_req */
{335740942, "password required"}, /* 627, gfix_pass_req */
{335740943, "subsystem name"}, /* 628, gfix_subs_name */
{335740944, "\"wal\" required"}, /* 629, gfix_wal_req */
{335740945, "number of seconds required"}, /* 630, gfix_sec_req */
{335740946, "numeric value between 0 and 32767 inclusive required"}, /* 631, gfix_nval_req */
{335740947, "must specify type of shutdown"}, /* 632, gfix_type_shut */
{335740948, "please retry, specifying an option"}, /* 633, gfix_retry */
{335740951, "please retry, giving a database name"}, /* 634, gfix_retry_db */
{335740991, "internal block exceeds maximum size"}, /* 635, gfix_exceed_max */
{335740992, "corrupt pool"}, /* 636, gfix_corrupt_pool */
{335740993, "virtual memory exhausted"}, /* 637, gfix_mem_exhausted */
{335740994, "bad pool id"}, /* 638, gfix_bad_pool */
{335740995, "Transaction state @1 not in valid range."}, /* 639, gfix_trn_not_valid */
{335741012, "unexpected end of input"}, /* 640, gfix_unexp_eoi */
{335741018, "failed to reconnect to a transaction in database @1"}, /* 641, gfix_recon_fail */
{335741036, "Transaction description item unknown"}, /* 642, gfix_trn_unknown */
{335741038, "\"read_only\" or \"read_write\" required"}, /* 643, gfix_mode_req */
{335741039, " -sql_dialect set database dialect n"}, /* 644, gfix_opt_SQL_dialect */
{335741042, "positive or zero numeric value required"}, /* 645, gfix_pzval_req */
{336003074, "Cannot SELECT RDB$DB_KEY from a stored procedure."}, /* 646, 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"}, /* 647, dsql_transitional_numeric */
{336003076, "Use of @1 expression that returns different results in dialect 1 and dialect 3"}, /* 648, dsql_dialect_warning_expr */
{336003077, "Database SQL dialect @1 does not support reference to @2 datatype"}, /* 649, sql_db_dialect_dtype_unsupport */
{336003079, "DB dialect @1 and client dialect @2 conflict with respect to numeric precision @3."}, /* 650, isc_sql_dialect_conflict_num */
{336003080, "WARNING: Numeric literal @1 is interpreted as a floating-point"}, /* 651, dsql_warning_number_ambiguous */
{336003081, "value in SQL dialect 1, but as an exact numeric value in SQL dialect 3."}, /* 652, dsql_warning_number_ambiguous1 */
{336003082, "WARNING: NUMERIC and DECIMAL fields with precision 10 or greater are stored"}, /* 653, dsql_warn_precision_ambiguous */
{336003083, "as approximate floating-point values in SQL dialect 1, but as 64-bit"}, /* 654, dsql_warn_precision_ambiguous1 */
{336003084, "integers in SQL dialect 3."}, /* 655, dsql_warn_precision_ambiguous2 */
{336003085, "Ambiguous field name between @1 and @2"}, /* 656, dsql_ambiguous_field_name */
{336003086, "External function should have return position between 1 and @1"}, /* 657, dsql_udf_return_pos_err */
{336003087, "Label @1 @2 in the current scope"}, /* 658, dsql_invalid_label */
{336003088, "Datatypes @1are not comparable in expression @2"}, /* 659, dsql_datatypes_not_comparable */
{336003089, "Empty cursor name is not allowed"}, /* 660, dsql_cursor_invalid */
{336003090, "Statement already has a cursor @1 assigned"}, /* 661, dsql_cursor_redefined */
{336003091, "Cursor @1 is not found in the current context"}, /* 662, dsql_cursor_not_found */
{336003092, "Cursor @1 already exists in the current context"}, /* 663, dsql_cursor_exists */
{336003093, "Relation @1 is ambiguous in cursor @2"}, /* 664, dsql_cursor_rel_ambiguous */
{336003094, "Relation @1 is not found in cursor @2"}, /* 665, dsql_cursor_rel_not_found */
{336003095, "Cursor is not open"}, /* 666, dsql_cursor_not_open */
{336003096, "Data type @1 is not supported for EXTERNAL TABLES. Relation '@2', field '@3'"}, /* 667, dsql_type_not_supp_ext_tab */
{336003097, "Feature not supported on ODS version older than @1.@2"}, /* 668, dsql_feature_not_supported_ods */
{336003098, "Primary key required on table @1"}, /* 669, primary_key_required */
{336003099, "UPDATE OR INSERT field list does not match primary key of table @1"}, /* 670, upd_ins_doesnt_match_pk */
{336003100, "UPDATE OR INSERT field list does not match MATCHING clause"}, /* 671, upd_ins_doesnt_match_matching */
{336003101, "UPDATE OR INSERT without MATCHING could not be used with views based on more than one table"}, /* 672, upd_ins_with_complex_view */
{336003102, "Incompatible trigger type"}, /* 673, dsql_incompatible_trigger_type */
{336003103, "Database trigger type can't be changed"}, /* 674, dsql_db_trigger_type_cant_change */
{336068740, "Table @1 already exists"}, /* 675, dyn_dup_table */
{336068784, "column @1 does not exist in table/view @2"}, /* 676, dyn_column_does_not_exist */
{336068796, "SQL role @1 does not exist"}, /* 677, dyn_role_does_not_exist */
{336068797, "user @1 has no grant admin option on SQL role @2"}, /* 678, dyn_no_grant_admin_opt */
{336068798, "user @1 is not a member of SQL role @2"}, /* 679, dyn_user_not_role_member */
{336068799, "@1 is not the owner of SQL role @2"}, /* 680, dyn_delete_role_failed */
{336068800, "@1 is a SQL role and not a user"}, /* 681, dyn_grant_role_to_user */
{336068801, "user name @1 could not be used for SQL role"}, /* 682, dyn_inv_sql_role_name */
{336068802, "SQL role @1 already exists"}, /* 683, dyn_dup_sql_role */
{336068803, "keyword @1 can not be used as a SQL role name"}, /* 684, 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."}, /* 685, dyn_roles_not_supported */
{336068812, "Cannot rename domain @1 to @2. A domain with that name already exists."}, /* 686, dyn_domain_name_exists */
{336068813, "Cannot rename column @1 to @2. A column with that name already exists in table @3."}, /* 687, dyn_field_name_exists */
{336068814, "Column @1 from table @2 is referenced in @3"}, /* 688, dyn_dependency_exists */
{336068815, "Cannot change datatype for column @1. Changing datatype is not supported for BLOB or ARRAY columns."}, /* 689, dyn_dtype_invalid */
{336068816, "New size specified for column @1 must be at least @2 characters."}, /* 690, dyn_char_fld_too_small */
{336068817, "Cannot change datatype for @1. Conversion from base type @2 to @3 is not supported."}, /* 691, dyn_invalid_dtype_conversion */
{336068818, "Cannot change datatype for column @1 from a character type to a non-character type."}, /* 692, dyn_dtype_conv_invalid */
{336068820, "Zero length identifiers are not allowed"}, /* 693, dyn_zero_len_id */
{336068829, "Maximum number of collations per character set exceeded"}, /* 694, max_coll_per_charset */
{336068830, "Invalid collation attributes"}, /* 695, invalid_coll_attr */
{336068840, "@1 cannot reference @2"}, /* 696, dyn_wrong_gtt_scope */
{336068852, "New scale specified for column @1 must be at most @2."}, /* 697, dyn_scale_too_big */
{336068853, "New precision specified for column @1 must be at least @2."}, /* 698, dyn_precision_too_small */
{336068855, "Warning: @1 on @2 is not granted to @3."}, /* 699, dyn_miss_priv_warning */
{336068856, "Feature '@1' is not supported in ODS @2.@3"}, /* 700, dyn_ods_not_supp_feature */
{336068857, "Cannot add or remove COMPUTED from column @1"}, /* 701, dyn_cannot_addrem_computed */
{336068858, "Password should not be empty string"}, /* 702, dyn_no_empty_pw */
{336068859, "Index @1 already exists"}, /* 703, dyn_dup_index */
{336330753, "found unknown switch"}, /* 704, gbak_unknown_switch */
{336330754, "page size parameter missing"}, /* 705, gbak_page_size_missing */
{336330755, "Page size specified (@1) greater than limit (16384 bytes)"}, /* 706, gbak_page_size_toobig */
{336330756, "redirect location for output is not specified"}, /* 707, gbak_redir_ouput_missing */
{336330757, "conflicting switches for backup/restore"}, /* 708, gbak_switches_conflict */
{336330758, "device type @1 not known"}, /* 709, gbak_unknown_device */
{336330759, "protection is not there yet"}, /* 710, gbak_no_protection */
{336330760, "page size is allowed only on restore or create"}, /* 711, gbak_page_size_not_allowed */
{336330761, "multiple sources or destinations specified"}, /* 712, gbak_multi_source_dest */
{336330762, "requires both input and output filenames"}, /* 713, gbak_filename_missing */
{336330763, "input and output have the same name. Disallowed."}, /* 714, gbak_dup_inout_names */
{336330764, "expected page size, encountered \"@1\""}, /* 715, gbak_inv_page_size */
{336330765, "REPLACE specified, but the first file @1 is a database"}, /* 716, gbak_db_specified */
{336330766, "database @1 already exists. To replace it, use the -REP switch"}, /* 717, gbak_db_exists */
{336330767, "device type not specified"}, /* 718, gbak_unk_device */
{336330772, "gds_$blob_info failed"}, /* 719, gbak_blob_info_failed */
{336330773, "do not understand BLOB INFO item @1"}, /* 720, gbak_unk_blob_item */
{336330774, "gds_$get_segment failed"}, /* 721, gbak_get_seg_failed */
{336330775, "gds_$close_blob failed"}, /* 722, gbak_close_blob_failed */
{336330776, "gds_$open_blob failed"}, /* 723, gbak_open_blob_failed */
{336330777, "Failed in put_blr_gen_id"}, /* 724, gbak_put_blr_gen_id_failed */
{336330778, "data type @1 not understood"}, /* 725, gbak_unk_type */
{336330779, "gds_$compile_request failed"}, /* 726, gbak_comp_req_failed */
{336330780, "gds_$start_request failed"}, /* 727, gbak_start_req_failed */
{336330781, "gds_$receive failed"}, /* 728, gbak_rec_failed */
{336330782, "gds_$release_request failed"}, /* 729, gbak_rel_req_failed */
{336330783, "gds_$database_info failed"}, /* 730, gbak_db_info_failed */
{336330784, "Expected database description record"}, /* 731, gbak_no_db_desc */
{336330785, "failed to create database @1"}, /* 732, gbak_db_create_failed */
{336330786, "RESTORE: decompression length error"}, /* 733, gbak_decomp_len_error */
{336330787, "cannot find table @1"}, /* 734, gbak_tbl_missing */
{336330788, "Cannot find column for BLOB"}, /* 735, gbak_blob_col_missing */
{336330789, "gds_$create_blob failed"}, /* 736, gbak_create_blob_failed */
{336330790, "gds_$put_segment failed"}, /* 737, gbak_put_seg_failed */
{336330791, "expected record length"}, /* 738, gbak_rec_len_exp */
{336330792, "wrong length record, expected @1 encountered @2"}, /* 739, gbak_inv_rec_len */
{336330793, "expected data attribute"}, /* 740, gbak_exp_data_type */
{336330794, "Failed in store_blr_gen_id"}, /* 741, gbak_gen_id_failed */
{336330795, "do not recognize record type @1"}, /* 742, gbak_unk_rec_type */
{336330796, "Expected backup version 1..8. Found @1"}, /* 743, gbak_inv_bkup_ver */
{336330797, "expected backup description record"}, /* 744, gbak_missing_bkup_desc */
{336330798, "string truncated"}, /* 745, gbak_string_trunc */
{336330799, "warning -- record could not be restored"}, /* 746, gbak_cant_rest_record */
{336330800, "gds_$send failed"}, /* 747, gbak_send_failed */
{336330801, "no table name for data"}, /* 748, gbak_no_tbl_name */
{336330802, "unexpected end of file on backup file"}, /* 749, gbak_unexp_eof */
{336330803, "database format @1 is too old to restore to"}, /* 750, gbak_db_format_too_old */
{336330804, "array dimension for column @1 is invalid"}, /* 751, gbak_inv_array_dim */
{336330807, "Expected XDR record length"}, /* 752, gbak_xdr_len_expected */
{336330817, "cannot open backup file @1"}, /* 753, gbak_open_bkup_error */
{336330818, "cannot open status and error output file @1"}, /* 754, gbak_open_error */
{336330934, "blocking factor parameter missing"}, /* 755, gbak_missing_block_fac */
{336330935, "expected blocking factor, encountered \"@1\""}, /* 756, gbak_inv_block_fac */
{336330936, "a blocking factor may not be used in conjunction with device CT"}, /* 757, gbak_block_fac_specified */
{336330940, "user name parameter missing"}, /* 758, gbak_missing_username */
{336330941, "password parameter missing"}, /* 759, gbak_missing_password */
{336330952, " missing parameter for the number of bytes to be skipped"}, /* 760, gbak_missing_skipped_bytes */
{336330953, "expected number of bytes to be skipped, encountered \"@1\""}, /* 761, gbak_inv_skipped_bytes */
{336330965, "character set"}, /* 762, gbak_err_restore_charset */
{336330967, "collation"}, /* 763, gbak_err_restore_collation */
{336330972, "Unexpected I/O error while reading from backup file"}, /* 764, gbak_read_error */
{336330973, "Unexpected I/O error while writing to backup file"}, /* 765, gbak_write_error */
{336330985, "could not drop database @1 (database might be in use)"}, /* 766, gbak_db_in_use */
{336330990, "System memory exhausted"}, /* 767, gbak_sysmemex */
{336331002, "SQL role"}, /* 768, gbak_restore_role_failed */
{336331005, "SQL role parameter missing"}, /* 769, gbak_role_op_missing */
{336331010, "page buffers parameter missing"}, /* 770, gbak_page_buffers_missing */
{336331011, "expected page buffers, encountered \"@1\""}, /* 771, gbak_page_buffers_wrong_param */
{336331012, "page buffers is allowed only on restore or create"}, /* 772, gbak_page_buffers_restore */
{336331014, "size specification either missing or incorrect for file @1"}, /* 773, gbak_inv_size */
{336331015, "file @1 out of sequence"}, /* 774, gbak_file_outof_sequence */
{336331016, "can't join -- one of the files missing"}, /* 775, gbak_join_file_missing */
{336331017, " standard input is not supported when using join operation"}, /* 776, gbak_stdin_not_supptd */
{336331018, "standard output is not supported when using split operation"}, /* 777, gbak_stdout_not_supptd */
{336331019, "backup file @1 might be corrupt"}, /* 778, gbak_bkup_corrupt */
{336331020, "database file specification missing"}, /* 779, gbak_unk_db_file_spec */
{336331021, "can't write a header record to file @1"}, /* 780, gbak_hdr_write_failed */
{336331022, "free disk space exhausted"}, /* 781, gbak_disk_space_ex */
{336331023, "file size given (@1) is less than minimum allowed (@2)"}, /* 782, gbak_size_lt_min */
{336331025, "service name parameter missing"}, /* 783, gbak_svc_name_missing */
{336331026, "Cannot restore over current database, must be SYSDBA or owner of the existing database."}, /* 784, gbak_not_ownr */
{336331031, "\"read_only\" or \"read_write\" required"}, /* 785, gbak_mode_req */
{336331033, "just data ignore all constraints etc."}, /* 786, gbak_just_data */
{336331034, "restoring data only ignoring foreign key, unique, not null & other constraints"}, /* 787, gbak_data_only */
{336397205, "ODS versions before ODS@1 are not supported"}, /* 788, dsql_too_old_ods */
{336397206, "Table @1 does not exist"}, /* 789, dsql_table_not_found */
{336397207, "View @1 does not exist"}, /* 790, dsql_view_not_found */
{336397208, "At line @1, column @2"}, /* 791, dsql_line_col_error */
{336397209, "At unknown line and column"}, /* 792, dsql_unknown_pos */
{336397210, "Column @1 cannot be repeated in @2 statement"}, /* 793, dsql_no_dup_name */
{336397211, "Too many values (more than @1) in member list to match against"}, /* 794, dsql_too_many_values */
{336397212, "Array and BLOB data types not allowed in computed field"}, /* 795, dsql_no_array_computed */
{336397213, "Implicit domain name @1 not allowed in user created domain"}, /* 796, dsql_implicit_domain_name */
{336397214, "scalar operator used on field @1 which is not an array"}, /* 797, dsql_only_can_subscript_array */
{336397215, "cannot sort on more than 255 items"}, /* 798, dsql_max_sort_items */
{336397216, "cannot group on more than 255 items"}, /* 799, dsql_max_group_items */
{336397217, "Cannot include the same field (@1.@2) twice in the ORDER BY clause with conflicting sorting options"}, /* 800, dsql_conflicting_sort_field */
{336397218, "column list from derived table @1 has more columns than the number of items in its SELECT statement"}, /* 801, dsql_derived_table_more_columns */
{336397219, "column list from derived table @1 has less columns than the number of items in its SELECT statement"}, /* 802, dsql_derived_table_less_columns */
{336397220, "no column name specified for column number @1 in derived table @2"}, /* 803, dsql_derived_field_unnamed */
{336397221, "column @1 was specified multiple times for derived table @2"}, /* 804, dsql_derived_field_dup_name */
{336397222, "Internal dsql error: alias type expected by pass1_expand_select_node"}, /* 805, dsql_derived_alias_select */
{336397223, "Internal dsql error: alias type expected by pass1_field"}, /* 806, dsql_derived_alias_field */
{336397224, "Internal dsql error: column position out of range in pass1_union_auto_cast"}, /* 807, dsql_auto_field_bad_pos */
{336397225, "Recursive CTE member (@1) can refer itself only in FROM clause"}, /* 808, dsql_cte_wrong_reference */
{336397226, "CTE '@1' has cyclic dependencies"}, /* 809, dsql_cte_cycle */
{336397227, "Recursive member of CTE can't be member of an outer join"}, /* 810, dsql_cte_outer_join */
{336397228, "Recursive member of CTE can't reference itself more than once"}, /* 811, dsql_cte_mult_references */
{336397229, "Recursive CTE (@1) must be an UNION"}, /* 812, dsql_cte_not_a_union */
{336397230, "CTE '@1' defined non-recursive member after recursive"}, /* 813, dsql_cte_nonrecurs_after_recurs */
{336397231, "Recursive member of CTE '@1' has @2 clause"}, /* 814, dsql_cte_wrong_clause */
{336397232, "Recursive members of CTE (@1) must be linked with another members via UNION ALL"}, /* 815, dsql_cte_union_all */
{336397233, "Non-recursive member is missing in CTE '@1'"}, /* 816, dsql_cte_miss_nonrecursive */
{336397234, "WITH clause can't be nested"}, /* 817, dsql_cte_nested_with */
{336397235, "column @1 appears more than once in USING clause"}, /* 818, dsql_col_more_than_once_using */
{336397236, "feature is not supported in dialect @1"}, /* 819, dsql_unsupp_feature_dialect */
{336397237, "CTE \"@1\" is not used in query"}, /* 820, dsql_cte_not_used */
{336397238, "column @1 appears more than once in ALTER VIEW"}, /* 821, dsql_col_more_than_once_view */
{336397239, "@1 is not supported inside IN AUTONOMOUS TRANSACTION block"}, /* 822, dsql_unsupported_in_auto_trans */
{336397240, "Unknown node type @1 in dsql/GEN_expr"}, /* 823, dsql_eval_unknode */
{336397241, "Argument for @1 in dialect 1 must be string or numeric"}, /* 824, dsql_agg_wrongarg */
{336397242, "Argument for @1 in dialect 3 must be numeric"}, /* 825, dsql_agg2_wrongarg */
{336397243, "Strings cannot be added to or subtracted from DATE or TIME types"}, /* 826, dsql_nodateortime_pm_string */
{336397244, "Invalid data type for subtraction involving DATE, TIME or TIMESTAMP types"}, /* 827, dsql_invalid_datetime_subtract */
{336397245, "Adding two DATE values or two TIME values is not allowed"}, /* 828, dsql_invalid_dateortime_add */
{336397246, "DATE value cannot be subtracted from the provided data type"}, /* 829, dsql_invalid_type_minus_date */
{336397247, "Strings cannot be added or subtracted in dialect 3"}, /* 830, dsql_nostring_addsub_dial3 */
{336397248, "Invalid data type for addition or subtraction in dialect 3"}, /* 831, dsql_invalid_type_addsub_dial3 */
{336397249, "Invalid data type for multiplication in dialect 1"}, /* 832, dsql_invalid_type_multip_dial1 */
{336397250, "Strings cannot be multiplied in dialect 3"}, /* 833, dsql_nostring_multip_dial3 */
{336397251, "Invalid data type for multiplication in dialect 3"}, /* 834, dsql_invalid_type_multip_dial3 */
{336397252, "Division in dialect 1 must be between numeric data types"}, /* 835, dsql_mustuse_numeric_div_dial1 */
{336397253, "Strings cannot be divided in dialect 3"}, /* 836, dsql_nostring_div_dial3 */
{336397254, "Invalid data type for division in dialect 3"}, /* 837, dsql_invalid_type_div_dial3 */
{336397255, "Strings cannot be negated (applied the minus operator) in dialect 3"}, /* 838, dsql_nostring_neg_dial3 */
{336397256, "Invalid data type for negation (minus operator)"}, /* 839, dsql_invalid_type_neg */
{336723983, "unable to open database"}, /* 840, gsec_cant_open_db */
{336723984, "error in switch specifications"}, /* 841, gsec_switches_error */
{336723985, "no operation specified"}, /* 842, gsec_no_op_spec */
{336723986, "no user name specified"}, /* 843, gsec_no_usr_name */
{336723987, "add record error"}, /* 844, gsec_err_add */
{336723988, "modify record error"}, /* 845, gsec_err_modify */
{336723989, "find/modify record error"}, /* 846, gsec_err_find_mod */
{336723990, "record not found for user: @1"}, /* 847, gsec_err_rec_not_found */
{336723991, "delete record error"}, /* 848, gsec_err_delete */
{336723992, "find/delete record error"}, /* 849, gsec_err_find_del */
{336723996, "find/display record error"}, /* 850, gsec_err_find_disp */
{336723997, "invalid parameter, no switch defined"}, /* 851, gsec_inv_param */
{336723998, "operation already specified"}, /* 852, gsec_op_specified */
{336723999, "password already specified"}, /* 853, gsec_pw_specified */
{336724000, "uid already specified"}, /* 854, gsec_uid_specified */
{336724001, "gid already specified"}, /* 855, gsec_gid_specified */
{336724002, "project already specified"}, /* 856, gsec_proj_specified */
{336724003, "organization already specified"}, /* 857, gsec_org_specified */
{336724004, "first name already specified"}, /* 858, gsec_fname_specified */
{336724005, "middle name already specified"}, /* 859, gsec_mname_specified */
{336724006, "last name already specified"}, /* 860, gsec_lname_specified */
{336724008, "invalid switch specified"}, /* 861, gsec_inv_switch */
{336724009, "ambiguous switch specified"}, /* 862, gsec_amb_switch */
{336724010, "no operation specified for parameters"}, /* 863, gsec_no_op_specified */
{336724011, "no parameters allowed for this operation"}, /* 864, gsec_params_not_allowed */
{336724012, "incompatible switches specified"}, /* 865, gsec_incompat_switch */
{336724044, "Invalid user name (maximum 31 bytes allowed)"}, /* 866, gsec_inv_username */
{336724045, "Warning - maximum 8 significant bytes of password used"}, /* 867, gsec_inv_pw_length */
{336724046, "database already specified"}, /* 868, gsec_db_specified */
{336724047, "database administrator name already specified"}, /* 869, gsec_db_admin_specified */
{336724048, "database administrator password already specified"}, /* 870, gsec_db_admin_pw_specified */
{336724049, "SQL role name already specified"}, /* 871, gsec_sql_role_specified */
{336789504, "The license file does not exist or could not be opened for read"}, /* 872, license_no_file */
{336789523, "operation already specified"}, /* 873, license_op_specified */
{336789524, "no operation specified"}, /* 874, license_op_missing */
{336789525, "invalid switch"}, /* 875, license_inv_switch */
{336789526, "invalid switch combination"}, /* 876, license_inv_switch_combo */
{336789527, "illegal operation/switch combination"}, /* 877, license_inv_op_combo */
{336789528, "ambiguous switch"}, /* 878, license_amb_switch */
{336789529, "invalid parameter, no switch specified"}, /* 879, license_inv_parameter */
{336789530, "switch does not take any parameter"}, /* 880, license_param_specified */
{336789531, "switch requires a parameter"}, /* 881, license_param_req */
{336789532, "syntax error in command line"}, /* 882, license_syntx_error */
{336789534, "The certificate was not added. A duplicate ID exists in the license file."}, /* 883, license_dup_id */
{336789535, "The certificate was not added. Invalid certificate ID / Key combination."}, /* 884, license_inv_id_key */
{336789536, "The certificate was not removed. The key does not exist or corresponds to a temporary evaluation license."}, /* 885, license_err_remove */
{336789537, "An error occurred updating the license file. Operation cancelled."}, /* 886, license_err_update */
{336789538, "The certificate could not be validated based on the information given. Please recheck the ID and key information."}, /* 887, license_err_convert */
{336789539, "Operation failed. An unknown error occurred."}, /* 888, license_err_unk */
{336789540, "Add license operation failed, KEY: @1 ID: @2"}, /* 889, license_svc_err_add */
{336789541, "Remove license operation failed, KEY: @1"}, /* 890, license_svc_err_remove */
{336789563, "The evaluation license has already been used on this server. You need to purchase a non-evaluation license."}, /* 891, license_eval_exists */
{336920577, "found unknown switch"}, /* 892, gstat_unknown_switch */
{336920578, "please retry, giving a database name"}, /* 893, gstat_retry */
{336920579, "Wrong ODS version, expected @1, encountered @2"}, /* 894, gstat_wrong_ods */
{336920580, "Unexpected end of database file."}, /* 895, gstat_unexpected_eof */
{336920605, "Can't open database file @1"}, /* 896, gstat_open_err */
{336920606, "Can't read a database page"}, /* 897, gstat_read_err */
{336920607, "System memory exhausted"}, /* 898, gstat_sysmemex */
{336986113, "Wrong value for access mode"}, /* 899, fbsvcmgr_bad_am */
{336986114, "Wrong value for write mode"}, /* 900, fbsvcmgr_bad_wm */
{336986115, "Wrong value for reserve space"}, /* 901, fbsvcmgr_bad_rs */
{336986116, "Unknown tag (@1) in info_svr_db_info block after isc_svc_query()"}, /* 902, fbsvcmgr_info_err */
{336986117, "Unknown tag (@1) in isc_svc_query() results"}, /* 903, fbsvcmgr_query_err */
{336986118, "Unknown switch \"@1\""}, /* 904, fbsvcmgr_switch_unknown */
{336986159, "Wrong value for shutdown mode"}, /* 905, fbsvcmgr_bad_sm */
{337051649, "Switches trusted_svc and trusted_role are not supported from command line"}, /* 906, utl_trusted_switch */
{335544937, "Invalid data type in DATE/TIME/TIMESTAMP addition or subtraction in add_datettime()"}, /* 617, invalid_type_datetime_op */
{335544938, "Only a TIME value can be added to a DATE value"}, /* 618, onlycan_add_timetodate */
{335544939, "Only a DATE value can be added to a TIME value"}, /* 619, onlycan_add_datetotime */
{335544940, "TIMESTAMP values can be subtracted only from another TIMESTAMP value"}, /* 620, onlycansub_tstampfromtstamp */
{335544941, "Only one operand can be of type TIMESTAMP"}, /* 621, onlyoneop_mustbe_tstamp */
{335544942, "Only HOUR, MINUTE, SECOND and MILLISECOND can be extracted from TIME values"}, /* 622, invalid_extractpart_time */
{335544943, "HOUR, MINUTE, SECOND and MILLISECOND cannot be extracted from DATE values"}, /* 623, invalid_extractpart_date */
{335544944, "Invalid argument for extrac() not being of DATE/TIME/TIMESTAMP type"}, /* 624, invalidarg_extract */
{335544945, "Arguments for @1 must be integral types or NUMERIC/DECIMAL without scale"}, /* 625, sysf_argmustbe_exact */
{335544946, "First argument for @ must be integral type or floating point type"}, /* 626, sysf_argmustbe_exact_or_fp */
{335544947, "Human readable UUID argument for @1 must be of string type"}, /* 627, sysf_argviolates_uuidtype */
{335544948, "Human readable UUID argument for @2 must be of exact length @1"}, /* 628, sysf_argviolates_uuidlen */
{335544949, "Human readable UUID argument for @3 must have \"-\" at position @2 instead of \"@1\""}, /* 629, sysf_argviolates_uuidfmt */
{335544950, "Human readable UUID argument for @3 must have hex digit at position @2 instead of \"@1\""}, /* 630, sysf_argviolates_guidigits */
{335544951, "Only HOUR, MINUTE, SECOND and MILLISECOND can be added to TIME values in @1"}, /* 631, sysf_invalid_addpart_time */
{335544952, "Invalid data type in addition of part to DATE/TIME/TIMESTAMP in @1"}, /* 632, sysf_invalid_add_datetime */
{335544953, "Invalid part @1 to be added to a DATE/TIME/TIMESTAMP value in @2"}, /* 633, sysf_invalid_addpart_dtime */
{335544954, "Expected DATE/TIME/TIMESTAMP type in evlDateAdd() result"}, /* 634, sysf_invalid_add_dtime_rc */
{335544955, "Expected DATE/TIME/TIMESTAMP type as first and second argument to @1"}, /* 635, sysf_invalid_diff_dtime */
{335544956, "The result of TIME-<value> in @1 cannot be expressed in YEAR, MONTH, DAY or WEEK"}, /* 636, sysf_invalid_timediff */
{335544957, "The result of TIME-TIMESTAMP or TIMESTAMP-TIME in @1 cannot be expressed in HOUR, MINUTE, SECOND or MILLISECOND"}, /* 637, sysf_invalid_tstamptimediff */
{335544958, "The result of DATE-TIME or TIME-DATE in @1 cannot be expressed in HOUR, MINUTE, SECOND and MILLISECOND"}, /* 638, sysf_invalid_datetimediff */
{335544959, "Invalid part @1 to express the difference between two DATE/TIME/TIMESTAMP values in @2"}, /* 639, sysf_invalid_diffpart */
{335544960, "Argument for @1 must be positive"}, /* 640, sysf_argmustbe_positive */
{335544961, "Base for @1 must be positive"}, /* 641, sysf_basemustbe_positive */
{335544962, "Argument #@1 for @2 must be zero or positive"}, /* 642, sysf_argnmustbe_nonneg */
{335544963, "Argument #@1 for @2 must be positive"}, /* 643, sysf_argnmustbe_positive */
{335544964, "Base for @1 cannot be zero if exponent is negative"}, /* 644, sysf_invalid_zeropowneg */
{335544965, "Base for @1 cannot be negative if exponent is not an integral value"}, /* 645, sysf_invalid_negpowfp */
{335544966, "The numeric scale must be between -128 and 127 in @1"}, /* 646, sysf_invalid_scale */
{335544967, "Argument for @1 must be zero or positive"}, /* 647, sysf_argmustbe_nonneg */
{335544968, "Binary UUID argument for @1 must be of string type"}, /* 648, sysf_binuuid_mustbe_str */
{335544969, "Binary UUID argument for @2 must use @1 bytes"}, /* 649, sysf_binuuid_wrongsize */
{335740929, "data base file name (@1) already given"}, /* 650, gfix_db_name */
{335740930, "invalid switch @1"}, /* 651, gfix_invalid_sw */
{335740932, "incompatible switch combination"}, /* 652, gfix_incmp_sw */
{335740933, "replay log pathname required"}, /* 653, gfix_replay_req */
{335740934, "number of page buffers for cache required"}, /* 654, gfix_pgbuf_req */
{335740935, "numeric value required"}, /* 655, gfix_val_req */
{335740936, "positive numeric value required"}, /* 656, gfix_pval_req */
{335740937, "number of transactions per sweep required"}, /* 657, gfix_trn_req */
{335740940, "\"full\" or \"reserve\" required"}, /* 658, gfix_full_req */
{335740941, "user name required"}, /* 659, gfix_usrname_req */
{335740942, "password required"}, /* 660, gfix_pass_req */
{335740943, "subsystem name"}, /* 661, gfix_subs_name */
{335740944, "\"wal\" required"}, /* 662, gfix_wal_req */
{335740945, "number of seconds required"}, /* 663, gfix_sec_req */
{335740946, "numeric value between 0 and 32767 inclusive required"}, /* 664, gfix_nval_req */
{335740947, "must specify type of shutdown"}, /* 665, gfix_type_shut */
{335740948, "please retry, specifying an option"}, /* 666, gfix_retry */
{335740951, "please retry, giving a database name"}, /* 667, gfix_retry_db */
{335740991, "internal block exceeds maximum size"}, /* 668, gfix_exceed_max */
{335740992, "corrupt pool"}, /* 669, gfix_corrupt_pool */
{335740993, "virtual memory exhausted"}, /* 670, gfix_mem_exhausted */
{335740994, "bad pool id"}, /* 671, gfix_bad_pool */
{335740995, "Transaction state @1 not in valid range."}, /* 672, gfix_trn_not_valid */
{335741012, "unexpected end of input"}, /* 673, gfix_unexp_eoi */
{335741018, "failed to reconnect to a transaction in database @1"}, /* 674, gfix_recon_fail */
{335741036, "Transaction description item unknown"}, /* 675, gfix_trn_unknown */
{335741038, "\"read_only\" or \"read_write\" required"}, /* 676, gfix_mode_req */
{335741039, " -sql_dialect set database dialect n"}, /* 677, gfix_opt_SQL_dialect */
{335741042, "positive or zero numeric value required"}, /* 678, gfix_pzval_req */
{336003074, "Cannot SELECT RDB$DB_KEY from a stored procedure."}, /* 679, 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"}, /* 680, dsql_transitional_numeric */
{336003076, "Use of @1 expression that returns different results in dialect 1 and dialect 3"}, /* 681, dsql_dialect_warning_expr */
{336003077, "Database SQL dialect @1 does not support reference to @2 datatype"}, /* 682, sql_db_dialect_dtype_unsupport */
{336003079, "DB dialect @1 and client dialect @2 conflict with respect to numeric precision @3."}, /* 683, isc_sql_dialect_conflict_num */
{336003080, "WARNING: Numeric literal @1 is interpreted as a floating-point"}, /* 684, dsql_warning_number_ambiguous */
{336003081, "value in SQL dialect 1, but as an exact numeric value in SQL dialect 3."}, /* 685, dsql_warning_number_ambiguous1 */
{336003082, "WARNING: NUMERIC and DECIMAL fields with precision 10 or greater are stored"}, /* 686, dsql_warn_precision_ambiguous */
{336003083, "as approximate floating-point values in SQL dialect 1, but as 64-bit"}, /* 687, dsql_warn_precision_ambiguous1 */
{336003084, "integers in SQL dialect 3."}, /* 688, dsql_warn_precision_ambiguous2 */
{336003085, "Ambiguous field name between @1 and @2"}, /* 689, dsql_ambiguous_field_name */
{336003086, "External function should have return position between 1 and @1"}, /* 690, dsql_udf_return_pos_err */
{336003087, "Label @1 @2 in the current scope"}, /* 691, dsql_invalid_label */
{336003088, "Datatypes @1are not comparable in expression @2"}, /* 692, dsql_datatypes_not_comparable */
{336003089, "Empty cursor name is not allowed"}, /* 693, dsql_cursor_invalid */
{336003090, "Statement already has a cursor @1 assigned"}, /* 694, dsql_cursor_redefined */
{336003091, "Cursor @1 is not found in the current context"}, /* 695, dsql_cursor_not_found */
{336003092, "Cursor @1 already exists in the current context"}, /* 696, dsql_cursor_exists */
{336003093, "Relation @1 is ambiguous in cursor @2"}, /* 697, dsql_cursor_rel_ambiguous */
{336003094, "Relation @1 is not found in cursor @2"}, /* 698, dsql_cursor_rel_not_found */
{336003095, "Cursor is not open"}, /* 699, dsql_cursor_not_open */
{336003096, "Data type @1 is not supported for EXTERNAL TABLES. Relation '@2', field '@3'"}, /* 700, dsql_type_not_supp_ext_tab */
{336003097, "Feature not supported on ODS version older than @1.@2"}, /* 701, dsql_feature_not_supported_ods */
{336003098, "Primary key required on table @1"}, /* 702, primary_key_required */
{336003099, "UPDATE OR INSERT field list does not match primary key of table @1"}, /* 703, upd_ins_doesnt_match_pk */
{336003100, "UPDATE OR INSERT field list does not match MATCHING clause"}, /* 704, upd_ins_doesnt_match_matching */
{336003101, "UPDATE OR INSERT without MATCHING could not be used with views based on more than one table"}, /* 705, upd_ins_with_complex_view */
{336003102, "Incompatible trigger type"}, /* 706, dsql_incompatible_trigger_type */
{336003103, "Database trigger type can't be changed"}, /* 707, dsql_db_trigger_type_cant_change */
{336068740, "Table @1 already exists"}, /* 708, dyn_dup_table */
{336068784, "column @1 does not exist in table/view @2"}, /* 709, dyn_column_does_not_exist */
{336068796, "SQL role @1 does not exist"}, /* 710, dyn_role_does_not_exist */
{336068797, "user @1 has no grant admin option on SQL role @2"}, /* 711, dyn_no_grant_admin_opt */
{336068798, "user @1 is not a member of SQL role @2"}, /* 712, dyn_user_not_role_member */
{336068799, "@1 is not the owner of SQL role @2"}, /* 713, dyn_delete_role_failed */
{336068800, "@1 is a SQL role and not a user"}, /* 714, dyn_grant_role_to_user */
{336068801, "user name @1 could not be used for SQL role"}, /* 715, dyn_inv_sql_role_name */
{336068802, "SQL role @1 already exists"}, /* 716, dyn_dup_sql_role */
{336068803, "keyword @1 can not be used as a SQL role name"}, /* 717, 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."}, /* 718, dyn_roles_not_supported */
{336068812, "Cannot rename domain @1 to @2. A domain with that name already exists."}, /* 719, dyn_domain_name_exists */
{336068813, "Cannot rename column @1 to @2. A column with that name already exists in table @3."}, /* 720, dyn_field_name_exists */
{336068814, "Column @1 from table @2 is referenced in @3"}, /* 721, dyn_dependency_exists */
{336068815, "Cannot change datatype for column @1. Changing datatype is not supported for BLOB or ARRAY columns."}, /* 722, dyn_dtype_invalid */
{336068816, "New size specified for column @1 must be at least @2 characters."}, /* 723, dyn_char_fld_too_small */
{336068817, "Cannot change datatype for @1. Conversion from base type @2 to @3 is not supported."}, /* 724, dyn_invalid_dtype_conversion */
{336068818, "Cannot change datatype for column @1 from a character type to a non-character type."}, /* 725, dyn_dtype_conv_invalid */
{336068820, "Zero length identifiers are not allowed"}, /* 726, dyn_zero_len_id */
{336068829, "Maximum number of collations per character set exceeded"}, /* 727, max_coll_per_charset */
{336068830, "Invalid collation attributes"}, /* 728, invalid_coll_attr */
{336068840, "@1 cannot reference @2"}, /* 729, dyn_wrong_gtt_scope */
{336068852, "New scale specified for column @1 must be at most @2."}, /* 730, dyn_scale_too_big */
{336068853, "New precision specified for column @1 must be at least @2."}, /* 731, dyn_precision_too_small */
{336068855, "Warning: @1 on @2 is not granted to @3."}, /* 732, dyn_miss_priv_warning */
{336068856, "Feature '@1' is not supported in ODS @2.@3"}, /* 733, dyn_ods_not_supp_feature */
{336068857, "Cannot add or remove COMPUTED from column @1"}, /* 734, dyn_cannot_addrem_computed */
{336068858, "Password should not be empty string"}, /* 735, dyn_no_empty_pw */
{336068859, "Index @1 already exists"}, /* 736, dyn_dup_index */
{336330753, "found unknown switch"}, /* 737, gbak_unknown_switch */
{336330754, "page size parameter missing"}, /* 738, gbak_page_size_missing */
{336330755, "Page size specified (@1) greater than limit (16384 bytes)"}, /* 739, gbak_page_size_toobig */
{336330756, "redirect location for output is not specified"}, /* 740, gbak_redir_ouput_missing */
{336330757, "conflicting switches for backup/restore"}, /* 741, gbak_switches_conflict */
{336330758, "device type @1 not known"}, /* 742, gbak_unknown_device */
{336330759, "protection is not there yet"}, /* 743, gbak_no_protection */
{336330760, "page size is allowed only on restore or create"}, /* 744, gbak_page_size_not_allowed */
{336330761, "multiple sources or destinations specified"}, /* 745, gbak_multi_source_dest */
{336330762, "requires both input and output filenames"}, /* 746, gbak_filename_missing */
{336330763, "input and output have the same name. Disallowed."}, /* 747, gbak_dup_inout_names */
{336330764, "expected page size, encountered \"@1\""}, /* 748, gbak_inv_page_size */
{336330765, "REPLACE specified, but the first file @1 is a database"}, /* 749, gbak_db_specified */
{336330766, "database @1 already exists. To replace it, use the -REP switch"}, /* 750, gbak_db_exists */
{336330767, "device type not specified"}, /* 751, gbak_unk_device */
{336330772, "gds_$blob_info failed"}, /* 752, gbak_blob_info_failed */
{336330773, "do not understand BLOB INFO item @1"}, /* 753, gbak_unk_blob_item */
{336330774, "gds_$get_segment failed"}, /* 754, gbak_get_seg_failed */
{336330775, "gds_$close_blob failed"}, /* 755, gbak_close_blob_failed */
{336330776, "gds_$open_blob failed"}, /* 756, gbak_open_blob_failed */
{336330777, "Failed in put_blr_gen_id"}, /* 757, gbak_put_blr_gen_id_failed */
{336330778, "data type @1 not understood"}, /* 758, gbak_unk_type */
{336330779, "gds_$compile_request failed"}, /* 759, gbak_comp_req_failed */
{336330780, "gds_$start_request failed"}, /* 760, gbak_start_req_failed */
{336330781, "gds_$receive failed"}, /* 761, gbak_rec_failed */
{336330782, "gds_$release_request failed"}, /* 762, gbak_rel_req_failed */
{336330783, "gds_$database_info failed"}, /* 763, gbak_db_info_failed */
{336330784, "Expected database description record"}, /* 764, gbak_no_db_desc */
{336330785, "failed to create database @1"}, /* 765, gbak_db_create_failed */
{336330786, "RESTORE: decompression length error"}, /* 766, gbak_decomp_len_error */
{336330787, "cannot find table @1"}, /* 767, gbak_tbl_missing */
{336330788, "Cannot find column for BLOB"}, /* 768, gbak_blob_col_missing */
{336330789, "gds_$create_blob failed"}, /* 769, gbak_create_blob_failed */
{336330790, "gds_$put_segment failed"}, /* 770, gbak_put_seg_failed */
{336330791, "expected record length"}, /* 771, gbak_rec_len_exp */
{336330792, "wrong length record, expected @1 encountered @2"}, /* 772, gbak_inv_rec_len */
{336330793, "expected data attribute"}, /* 773, gbak_exp_data_type */
{336330794, "Failed in store_blr_gen_id"}, /* 774, gbak_gen_id_failed */
{336330795, "do not recognize record type @1"}, /* 775, gbak_unk_rec_type */
{336330796, "Expected backup version 1..8. Found @1"}, /* 776, gbak_inv_bkup_ver */
{336330797, "expected backup description record"}, /* 777, gbak_missing_bkup_desc */
{336330798, "string truncated"}, /* 778, gbak_string_trunc */
{336330799, "warning -- record could not be restored"}, /* 779, gbak_cant_rest_record */
{336330800, "gds_$send failed"}, /* 780, gbak_send_failed */
{336330801, "no table name for data"}, /* 781, gbak_no_tbl_name */
{336330802, "unexpected end of file on backup file"}, /* 782, gbak_unexp_eof */
{336330803, "database format @1 is too old to restore to"}, /* 783, gbak_db_format_too_old */
{336330804, "array dimension for column @1 is invalid"}, /* 784, gbak_inv_array_dim */
{336330807, "Expected XDR record length"}, /* 785, gbak_xdr_len_expected */
{336330817, "cannot open backup file @1"}, /* 786, gbak_open_bkup_error */
{336330818, "cannot open status and error output file @1"}, /* 787, gbak_open_error */
{336330934, "blocking factor parameter missing"}, /* 788, gbak_missing_block_fac */
{336330935, "expected blocking factor, encountered \"@1\""}, /* 789, gbak_inv_block_fac */
{336330936, "a blocking factor may not be used in conjunction with device CT"}, /* 790, gbak_block_fac_specified */
{336330940, "user name parameter missing"}, /* 791, gbak_missing_username */
{336330941, "password parameter missing"}, /* 792, gbak_missing_password */
{336330952, " missing parameter for the number of bytes to be skipped"}, /* 793, gbak_missing_skipped_bytes */
{336330953, "expected number of bytes to be skipped, encountered \"@1\""}, /* 794, gbak_inv_skipped_bytes */
{336330965, "character set"}, /* 795, gbak_err_restore_charset */
{336330967, "collation"}, /* 796, gbak_err_restore_collation */
{336330972, "Unexpected I/O error while reading from backup file"}, /* 797, gbak_read_error */
{336330973, "Unexpected I/O error while writing to backup file"}, /* 798, gbak_write_error */
{336330985, "could not drop database @1 (database might be in use)"}, /* 799, gbak_db_in_use */
{336330990, "System memory exhausted"}, /* 800, gbak_sysmemex */
{336331002, "SQL role"}, /* 801, gbak_restore_role_failed */
{336331005, "SQL role parameter missing"}, /* 802, gbak_role_op_missing */
{336331010, "page buffers parameter missing"}, /* 803, gbak_page_buffers_missing */
{336331011, "expected page buffers, encountered \"@1\""}, /* 804, gbak_page_buffers_wrong_param */
{336331012, "page buffers is allowed only on restore or create"}, /* 805, gbak_page_buffers_restore */
{336331014, "size specification either missing or incorrect for file @1"}, /* 806, gbak_inv_size */
{336331015, "file @1 out of sequence"}, /* 807, gbak_file_outof_sequence */
{336331016, "can't join -- one of the files missing"}, /* 808, gbak_join_file_missing */
{336331017, " standard input is not supported when using join operation"}, /* 809, gbak_stdin_not_supptd */
{336331018, "standard output is not supported when using split operation"}, /* 810, gbak_stdout_not_supptd */
{336331019, "backup file @1 might be corrupt"}, /* 811, gbak_bkup_corrupt */
{336331020, "database file specification missing"}, /* 812, gbak_unk_db_file_spec */
{336331021, "can't write a header record to file @1"}, /* 813, gbak_hdr_write_failed */
{336331022, "free disk space exhausted"}, /* 814, gbak_disk_space_ex */
{336331023, "file size given (@1) is less than minimum allowed (@2)"}, /* 815, gbak_size_lt_min */
{336331025, "service name parameter missing"}, /* 816, gbak_svc_name_missing */
{336331026, "Cannot restore over current database, must be SYSDBA or owner of the existing database."}, /* 817, gbak_not_ownr */
{336331031, "\"read_only\" or \"read_write\" required"}, /* 818, gbak_mode_req */
{336331033, "just data ignore all constraints etc."}, /* 819, gbak_just_data */
{336331034, "restoring data only ignoring foreign key, unique, not null & other constraints"}, /* 820, gbak_data_only */
{336397205, "ODS versions before ODS@1 are not supported"}, /* 821, dsql_too_old_ods */
{336397206, "Table @1 does not exist"}, /* 822, dsql_table_not_found */
{336397207, "View @1 does not exist"}, /* 823, dsql_view_not_found */
{336397208, "At line @1, column @2"}, /* 824, dsql_line_col_error */
{336397209, "At unknown line and column"}, /* 825, dsql_unknown_pos */
{336397210, "Column @1 cannot be repeated in @2 statement"}, /* 826, dsql_no_dup_name */
{336397211, "Too many values (more than @1) in member list to match against"}, /* 827, dsql_too_many_values */
{336397212, "Array and BLOB data types not allowed in computed field"}, /* 828, dsql_no_array_computed */
{336397213, "Implicit domain name @1 not allowed in user created domain"}, /* 829, dsql_implicit_domain_name */
{336397214, "scalar operator used on field @1 which is not an array"}, /* 830, dsql_only_can_subscript_array */
{336397215, "cannot sort on more than 255 items"}, /* 831, dsql_max_sort_items */
{336397216, "cannot group on more than 255 items"}, /* 832, dsql_max_group_items */
{336397217, "Cannot include the same field (@1.@2) twice in the ORDER BY clause with conflicting sorting options"}, /* 833, dsql_conflicting_sort_field */
{336397218, "column list from derived table @1 has more columns than the number of items in its SELECT statement"}, /* 834, dsql_derived_table_more_columns */
{336397219, "column list from derived table @1 has less columns than the number of items in its SELECT statement"}, /* 835, dsql_derived_table_less_columns */
{336397220, "no column name specified for column number @1 in derived table @2"}, /* 836, dsql_derived_field_unnamed */
{336397221, "column @1 was specified multiple times for derived table @2"}, /* 837, dsql_derived_field_dup_name */
{336397222, "Internal dsql error: alias type expected by pass1_expand_select_node"}, /* 838, dsql_derived_alias_select */
{336397223, "Internal dsql error: alias type expected by pass1_field"}, /* 839, dsql_derived_alias_field */
{336397224, "Internal dsql error: column position out of range in pass1_union_auto_cast"}, /* 840, dsql_auto_field_bad_pos */
{336397225, "Recursive CTE member (@1) can refer itself only in FROM clause"}, /* 841, dsql_cte_wrong_reference */
{336397226, "CTE '@1' has cyclic dependencies"}, /* 842, dsql_cte_cycle */
{336397227, "Recursive member of CTE can't be member of an outer join"}, /* 843, dsql_cte_outer_join */
{336397228, "Recursive member of CTE can't reference itself more than once"}, /* 844, dsql_cte_mult_references */
{336397229, "Recursive CTE (@1) must be an UNION"}, /* 845, dsql_cte_not_a_union */
{336397230, "CTE '@1' defined non-recursive member after recursive"}, /* 846, dsql_cte_nonrecurs_after_recurs */
{336397231, "Recursive member of CTE '@1' has @2 clause"}, /* 847, dsql_cte_wrong_clause */
{336397232, "Recursive members of CTE (@1) must be linked with another members via UNION ALL"}, /* 848, dsql_cte_union_all */
{336397233, "Non-recursive member is missing in CTE '@1'"}, /* 849, dsql_cte_miss_nonrecursive */
{336397234, "WITH clause can't be nested"}, /* 850, dsql_cte_nested_with */
{336397235, "column @1 appears more than once in USING clause"}, /* 851, dsql_col_more_than_once_using */
{336397236, "feature is not supported in dialect @1"}, /* 852, dsql_unsupp_feature_dialect */
{336397237, "CTE \"@1\" is not used in query"}, /* 853, dsql_cte_not_used */
{336397238, "column @1 appears more than once in ALTER VIEW"}, /* 854, dsql_col_more_than_once_view */
{336397239, "@1 is not supported inside IN AUTONOMOUS TRANSACTION block"}, /* 855, dsql_unsupported_in_auto_trans */
{336397240, "Unknown node type @1 in dsql/GEN_expr"}, /* 856, dsql_eval_unknode */
{336397241, "Argument for @1 in dialect 1 must be string or numeric"}, /* 857, dsql_agg_wrongarg */
{336397242, "Argument for @1 in dialect 3 must be numeric"}, /* 858, dsql_agg2_wrongarg */
{336397243, "Strings cannot be added to or subtracted from DATE or TIME types"}, /* 859, dsql_nodateortime_pm_string */
{336397244, "Invalid data type for subtraction involving DATE, TIME or TIMESTAMP types"}, /* 860, dsql_invalid_datetime_subtract */
{336397245, "Adding two DATE values or two TIME values is not allowed"}, /* 861, dsql_invalid_dateortime_add */
{336397246, "DATE value cannot be subtracted from the provided data type"}, /* 862, dsql_invalid_type_minus_date */
{336397247, "Strings cannot be added or subtracted in dialect 3"}, /* 863, dsql_nostring_addsub_dial3 */
{336397248, "Invalid data type for addition or subtraction in dialect 3"}, /* 864, dsql_invalid_type_addsub_dial3 */
{336397249, "Invalid data type for multiplication in dialect 1"}, /* 865, dsql_invalid_type_multip_dial1 */
{336397250, "Strings cannot be multiplied in dialect 3"}, /* 866, dsql_nostring_multip_dial3 */
{336397251, "Invalid data type for multiplication in dialect 3"}, /* 867, dsql_invalid_type_multip_dial3 */
{336397252, "Division in dialect 1 must be between numeric data types"}, /* 868, dsql_mustuse_numeric_div_dial1 */
{336397253, "Strings cannot be divided in dialect 3"}, /* 869, dsql_nostring_div_dial3 */
{336397254, "Invalid data type for division in dialect 3"}, /* 870, dsql_invalid_type_div_dial3 */
{336397255, "Strings cannot be negated (applied the minus operator) in dialect 3"}, /* 871, dsql_nostring_neg_dial3 */
{336397256, "Invalid data type for negation (minus operator)"}, /* 872, dsql_invalid_type_neg */
{336723983, "unable to open database"}, /* 873, gsec_cant_open_db */
{336723984, "error in switch specifications"}, /* 874, gsec_switches_error */
{336723985, "no operation specified"}, /* 875, gsec_no_op_spec */
{336723986, "no user name specified"}, /* 876, gsec_no_usr_name */
{336723987, "add record error"}, /* 877, gsec_err_add */
{336723988, "modify record error"}, /* 878, gsec_err_modify */
{336723989, "find/modify record error"}, /* 879, gsec_err_find_mod */
{336723990, "record not found for user: @1"}, /* 880, gsec_err_rec_not_found */
{336723991, "delete record error"}, /* 881, gsec_err_delete */
{336723992, "find/delete record error"}, /* 882, gsec_err_find_del */
{336723996, "find/display record error"}, /* 883, gsec_err_find_disp */
{336723997, "invalid parameter, no switch defined"}, /* 884, gsec_inv_param */
{336723998, "operation already specified"}, /* 885, gsec_op_specified */
{336723999, "password already specified"}, /* 886, gsec_pw_specified */
{336724000, "uid already specified"}, /* 887, gsec_uid_specified */
{336724001, "gid already specified"}, /* 888, gsec_gid_specified */
{336724002, "project already specified"}, /* 889, gsec_proj_specified */
{336724003, "organization already specified"}, /* 890, gsec_org_specified */
{336724004, "first name already specified"}, /* 891, gsec_fname_specified */
{336724005, "middle name already specified"}, /* 892, gsec_mname_specified */
{336724006, "last name already specified"}, /* 893, gsec_lname_specified */
{336724008, "invalid switch specified"}, /* 894, gsec_inv_switch */
{336724009, "ambiguous switch specified"}, /* 895, gsec_amb_switch */
{336724010, "no operation specified for parameters"}, /* 896, gsec_no_op_specified */
{336724011, "no parameters allowed for this operation"}, /* 897, gsec_params_not_allowed */
{336724012, "incompatible switches specified"}, /* 898, gsec_incompat_switch */
{336724044, "Invalid user name (maximum 31 bytes allowed)"}, /* 899, gsec_inv_username */
{336724045, "Warning - maximum 8 significant bytes of password used"}, /* 900, gsec_inv_pw_length */
{336724046, "database already specified"}, /* 901, gsec_db_specified */
{336724047, "database administrator name already specified"}, /* 902, gsec_db_admin_specified */
{336724048, "database administrator password already specified"}, /* 903, gsec_db_admin_pw_specified */
{336724049, "SQL role name already specified"}, /* 904, gsec_sql_role_specified */
{336789504, "The license file does not exist or could not be opened for read"}, /* 905, license_no_file */
{336789523, "operation already specified"}, /* 906, license_op_specified */
{336789524, "no operation specified"}, /* 907, license_op_missing */
{336789525, "invalid switch"}, /* 908, license_inv_switch */
{336789526, "invalid switch combination"}, /* 909, license_inv_switch_combo */
{336789527, "illegal operation/switch combination"}, /* 910, license_inv_op_combo */
{336789528, "ambiguous switch"}, /* 911, license_amb_switch */
{336789529, "invalid parameter, no switch specified"}, /* 912, license_inv_parameter */
{336789530, "switch does not take any parameter"}, /* 913, license_param_specified */
{336789531, "switch requires a parameter"}, /* 914, license_param_req */
{336789532, "syntax error in command line"}, /* 915, license_syntx_error */
{336789534, "The certificate was not added. A duplicate ID exists in the license file."}, /* 916, license_dup_id */
{336789535, "The certificate was not added. Invalid certificate ID / Key combination."}, /* 917, license_inv_id_key */
{336789536, "The certificate was not removed. The key does not exist or corresponds to a temporary evaluation license."}, /* 918, license_err_remove */
{336789537, "An error occurred updating the license file. Operation cancelled."}, /* 919, license_err_update */
{336789538, "The certificate could not be validated based on the information given. Please recheck the ID and key information."}, /* 920, license_err_convert */
{336789539, "Operation failed. An unknown error occurred."}, /* 921, license_err_unk */
{336789540, "Add license operation failed, KEY: @1 ID: @2"}, /* 922, license_svc_err_add */
{336789541, "Remove license operation failed, KEY: @1"}, /* 923, license_svc_err_remove */
{336789563, "The evaluation license has already been used on this server. You need to purchase a non-evaluation license."}, /* 924, license_eval_exists */
{336920577, "found unknown switch"}, /* 925, gstat_unknown_switch */
{336920578, "please retry, giving a database name"}, /* 926, gstat_retry */
{336920579, "Wrong ODS version, expected @1, encountered @2"}, /* 927, gstat_wrong_ods */
{336920580, "Unexpected end of database file."}, /* 928, gstat_unexpected_eof */
{336920605, "Can't open database file @1"}, /* 929, gstat_open_err */
{336920606, "Can't read a database page"}, /* 930, gstat_read_err */
{336920607, "System memory exhausted"}, /* 931, gstat_sysmemex */
{336986113, "Wrong value for access mode"}, /* 932, fbsvcmgr_bad_am */
{336986114, "Wrong value for write mode"}, /* 933, fbsvcmgr_bad_wm */
{336986115, "Wrong value for reserve space"}, /* 934, fbsvcmgr_bad_rs */
{336986116, "Unknown tag (@1) in info_svr_db_info block after isc_svc_query()"}, /* 935, fbsvcmgr_info_err */
{336986117, "Unknown tag (@1) in isc_svc_query() results"}, /* 936, fbsvcmgr_query_err */
{336986118, "Unknown switch \"@1\""}, /* 937, fbsvcmgr_switch_unknown */
{336986159, "Wrong value for shutdown mode"}, /* 938, fbsvcmgr_bad_sm */
{337051649, "Switches trusted_svc and trusted_role are not supported from command line"}, /* 939, utl_trusted_switch */
{0, NULL}
};

View File

@ -637,6 +637,39 @@ static const struct {
{335544934, -901}, /* 614 ibutil_not_loaded */
{335544935, -904}, /* 615 circular_computed */
{335544936, -902}, /* 616 psw_db_error */
{335544937, -833}, /* 617 invalid_type_datetime_op */
{335544938, -833}, /* 618 onlycan_add_timetodate */
{335544939, -833}, /* 619 onlycan_add_datetotime */
{335544940, -833}, /* 620 onlycansub_tstampfromtstamp */
{335544941, -833}, /* 621 onlyoneop_mustbe_tstamp */
{335544942, -833}, /* 622 invalid_extractpart_time */
{335544943, -833}, /* 623 invalid_extractpart_date */
{335544944, -833}, /* 624 invalidarg_extract */
{335544945, -833}, /* 625 sysf_argmustbe_exact */
{335544946, -833}, /* 626 sysf_argmustbe_exact_or_fp */
{335544947, -833}, /* 627 sysf_argviolates_uuidtype */
{335544948, -833}, /* 628 sysf_argviolates_uuidlen */
{335544949, -833}, /* 629 sysf_argviolates_uuidfmt */
{335544950, -833}, /* 630 sysf_argviolates_guidigits */
{335544951, -833}, /* 631 sysf_invalid_addpart_time */
{335544952, -833}, /* 632 sysf_invalid_add_datetime */
{335544953, -833}, /* 633 sysf_invalid_addpart_dtime */
{335544954, -833}, /* 634 sysf_invalid_add_dtime_rc */
{335544955, -833}, /* 635 sysf_invalid_diff_dtime */
{335544956, -833}, /* 636 sysf_invalid_timediff */
{335544957, -833}, /* 637 sysf_invalid_tstamptimediff */
{335544958, -833}, /* 638 sysf_invalid_datetimediff */
{335544959, -833}, /* 639 sysf_invalid_diffpart */
{335544960, -833}, /* 640 sysf_argmustbe_positive */
{335544961, -833}, /* 641 sysf_basemustbe_positive */
{335544962, -833}, /* 642 sysf_argnmustbe_nonneg */
{335544963, -833}, /* 643 sysf_argnmustbe_positive */
{335544964, -833}, /* 644 sysf_invalid_zeropowneg */
{335544965, -833}, /* 645 sysf_invalid_negpowfp */
{335544966, -833}, /* 646 sysf_invalid_scale */
{335544967, -833}, /* 647 sysf_argmustbe_nonneg */
{335544968, -833}, /* 648 sysf_binuuid_mustbe_str */
{335544969, -833}, /* 649 sysf_binuuid_wrongsize */
{335740929, -901}, /* 1 gfix_db_name */
{335740930, -901}, /* 2 gfix_invalid_sw */
{335740932, -901}, /* 4 gfix_incmp_sw */

View File

@ -637,6 +637,39 @@ static const struct {
{335544934, "39000"}, // 614 ibutil_not_loaded
{335544935, "42000"}, // 615 circular_computed
{335544936, "28000"}, // 616 psw_db_error
{335544937, "42000"}, // 617 invalid_type_datetime_op
{335544938, "42000"}, // 618 onlycan_add_timetodate
{335544939, "42000"}, // 619 onlycan_add_datetotime
{335544940, "42000"}, // 620 onlycansub_tstampfromtstamp
{335544941, "42000"}, // 621 onlyoneop_mustbe_tstamp
{335544942, "42000"}, // 622 invalid_extractpart_time
{335544943, "42000"}, // 623 invalid_extractpart_date
{335544944, "42000"}, // 624 invalidarg_extract
{335544945, "42000"}, // 625 sysf_argmustbe_exact
{335544946, "42000"}, // 626 sysf_argmustbe_exact_or_fp
{335544947, "42000"}, // 627 sysf_argviolates_uuidtype
{335544948, "42000"}, // 628 sysf_argviolates_uuidlen
{335544949, "42000"}, // 629 sysf_argviolates_uuidfmt
{335544950, "42000"}, // 630 sysf_argviolates_guidigits
{335544951, "42000"}, // 631 sysf_invalid_addpart_time
{335544952, "42000"}, // 632 sysf_invalid_add_datetime
{335544953, "42000"}, // 633 sysf_invalid_addpart_dtime
{335544954, "42000"}, // 634 sysf_invalid_add_dtime_rc
{335544955, "42000"}, // 635 sysf_invalid_diff_dtime
{335544956, "42000"}, // 636 sysf_invalid_timediff
{335544957, "42000"}, // 637 sysf_invalid_tstamptimediff
{335544958, "42000"}, // 638 sysf_invalid_datetimediff
{335544959, "42000"}, // 639 sysf_invalid_diffpart
{335544960, "42000"}, // 640 sysf_argmustbe_positive
{335544961, "42000"}, // 641 sysf_basemustbe_positive
{335544962, "42000"}, // 642 sysf_argnmustbe_nonneg
{335544963, "42000"}, // 643 sysf_argnmustbe_positive
{335544964, "42000"}, // 644 sysf_invalid_zeropowneg
{335544965, "42000"}, // 645 sysf_invalid_negpowfp
{335544966, "42000"}, // 646 sysf_invalid_scale
{335544967, "42000"}, // 647 sysf_argmustbe_nonneg
{335544968, "42000"}, // 648 sysf_binuuid_mustbe_str
{335544969, "42000"}, // 649 sysf_binuuid_wrongsize
{335740929, "00000"}, // 1 gfix_db_name
{335740930, "00000"}, // 2 gfix_invalid_sw
{335740932, "00000"}, // 4 gfix_incmp_sw

View File

@ -255,7 +255,7 @@ static void setParamsAsciiVal(DataTypeUtilBase* dataTypeUtil, const SysFunction*
static void setParamsCharToUuid(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, int argsCount, dsc** args)
{
if (argsCount >= 1 && args[0]->isUnknown())
args[0]->makeText(36, ttype_ascii);
args[0]->makeText(GUID_BODY_SIZE, ttype_ascii);
}
@ -502,7 +502,8 @@ static void makeBin(DataTypeUtilBase* dataTypeUtil, const SysFunction* function,
}
if (!args[i]->isExact() || args[i]->dsc_scale != 0)
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argmustbe_exact) << Arg::Str(function->name));
if (first)
{
@ -552,7 +553,8 @@ static void makeBinShift(DataTypeUtilBase* dataTypeUtil, const SysFunction* func
isNullable = true;
if (!args[i]->isExact() || args[i]->dsc_scale != 0)
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argmustbe_exact) << Arg::Str(function->name));
}
result->setNullable(isNullable);
@ -837,7 +839,8 @@ static void makeRound(DataTypeUtilBase* dataTypeUtil, const SysFunction* functio
result->dsc_scale = 0;
}
else
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argmustbe_exact_or_fp) << Arg::Str(function->name));
result->setNullable(value1->isNullable() || (argsCount > 1 && args[1]->isNullable()));
}
@ -901,7 +904,7 @@ static void makeUuidToChar(DataTypeUtilBase* dataTypeUtil, const SysFunction* fu
return;
}
result->makeText(36, ttype_ascii);
result->makeText(GUID_BODY_SIZE, ttype_ascii);
result->setNullable(value->isNullable());
}
@ -957,7 +960,7 @@ static dsc* evlAbs(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::jrd_n
if (impure->vlu_misc.vlu_int64 == MIN_SINT64)
status_exception::raise(Arg::Gds(isc_arith_except) << Arg::Gds(isc_numeric_out_of_range));
else if (impure->vlu_misc.vlu_int64 < 0)
else if (impure->vlu_misc.vlu_int64 < 0)
impure->vlu_misc.vlu_int64 = -impure->vlu_misc.vlu_int64;
impure->vlu_desc.makeInt64(value->dsc_scale, &impure->vlu_misc.vlu_int64);
@ -1182,6 +1185,14 @@ static dsc* evlCeil(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::jrd_
}
static string showInvalidChar(const UCHAR c)
{
string str;
str.printf("%c (%X)", c, c);
return str;
}
static dsc* evlCharToUuid(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::jrd_nod* args, Jrd::impure_value* impure)
{
fb_assert(args->nod_count == 1);
@ -1194,36 +1205,50 @@ static dsc* evlCharToUuid(Jrd::thread_db* tdbb, const SysFunction* function, Jrd
return NULL;
if (!value->isText())
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argviolates_uuidtype) << Arg::Str(function->name));
USHORT ttype;
UCHAR* data;
const USHORT len = CVT_get_string_ptr(value, &ttype, &data, NULL, 0, ERR_post);
UCHAR* data_temp;
const USHORT len = CVT_get_string_ptr(value, &ttype, &data_temp, NULL, 0, ERR_post);
const UCHAR* data = data_temp;
// validate the UUID
if (len != 36)
status_exception::raise(Arg::Gds(isc_expression_eval_err));
if (len != GUID_BODY_SIZE) // 36
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argviolates_uuidlen)
<< Arg::Num(GUID_BODY_SIZE)
<< Arg::Str(function->name));
for (int i = 0; i < 36; ++i)
for (int i = 0; i < GUID_BODY_SIZE; ++i)
{
if (i == 8 || i == 13 || i == 18 || i == 23)
{
if (data[i] != '-')
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argviolates_uuidfmt) <<
Arg::Str(showInvalidChar(data[i])) <<
Arg::Num(i) <<
Arg::Str(function->name));
}
else if (!((UPPER7(data[i]) >= 'A' && UPPER7(data[i]) <= 'F') ||
(data[i] >= '0' && data[i] <= '9')))
else
{
status_exception::raise(Arg::Gds(isc_expression_eval_err));
const UCHAR c = data[i], hex = UPPER7(c);
if (!(hex >= 'A' && hex <= 'F' || c >= '0' && c <= '9'))
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argviolates_guidigits) <<
Arg::Str(showInvalidChar(c)) <<
Arg::Num(i) <<
Arg::Str(function->name));
}
}
// convert to binary representation
char buffer[39];
char buffer[GUID_BUFF_SIZE];
buffer[0] = '{';
buffer[37] = '}';
buffer[38] = '\0';
memcpy(buffer + 1, data, 36);
memcpy(buffer + 1, data, GUID_BODY_SIZE);
FB_GUID guid;
StringToGuid(&guid, buffer);
@ -1236,6 +1261,33 @@ static dsc* evlCharToUuid(Jrd::thread_db* tdbb, const SysFunction* function, Jrd
}
/* As seen in blr.h; keep this array "extractParts" in sync.
#define blr_extract_year (unsigned char)0
#define blr_extract_month (unsigned char)1
#define blr_extract_day (unsigned char)2
#define blr_extract_hour (unsigned char)3
#define blr_extract_minute (unsigned char)4
#define blr_extract_second (unsigned char)5
#define blr_extract_weekday (unsigned char)6
#define blr_extract_yearday (unsigned char)7
#define blr_extract_millisecond (unsigned char)8
#define blr_extract_week (unsigned char)9
*/
const char* extractParts[10] =
{
"YEAR", "MONTH", "DAY", "HOUR", "MINUTE", "SECOND", "WEEKDAY", "YEARDAY", "MILLISECOND", "WEEK"
};
static const char* getPartName(int n)
{
if (n < 0 || n > FB_NELEM(extractParts))
return "Unknown";
return extractParts[n];
}
static dsc* evlDateAdd(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::jrd_nod* args, Jrd::impure_value* impure)
{
fb_assert(args->nod_count == 3);
@ -1269,7 +1321,9 @@ static dsc* evlDateAdd(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::j
part != blr_extract_second &&
part != blr_extract_millisecond)
{
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_addpart_time) <<
Arg::Str(function->name));
}
break;
@ -1291,7 +1345,9 @@ static dsc* evlDateAdd(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::j
break;
default:
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_add_datetime) <<
Arg::Str(function->name));
break;
}
@ -1359,7 +1415,7 @@ static dsc* evlDateAdd(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::j
case blr_extract_day:
timestamp.value().timestamp_date += quantity;
break;
case blr_extract_week:
timestamp.value().timestamp_date += quantity * 7;
break;
@ -1393,7 +1449,10 @@ static dsc* evlDateAdd(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::j
break;
default:
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_addpart_dtime) <<
Arg::Str(getPartName(part)) <<
Arg::Str(function->name));
break;
}
@ -1409,12 +1468,13 @@ static dsc* evlDateAdd(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::j
impure->vlu_misc.vlu_sql_date = timestamp.value().timestamp_date;
break;
case dtype_timestamp:
case dtype_timestamp:
impure->vlu_misc.vlu_timestamp = timestamp.value();
break;
default:
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_add_dtime_rc));
break;
}
@ -1441,7 +1501,7 @@ static dsc* evlDateDiff(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::
if (request->req_flags & req_null) // return NULL if value2Dsc is NULL
return NULL;
TimeStamp timestamp1, timestamp2;
TimeStamp timestamp1;
switch (value1Dsc->dsc_dtype)
{
@ -1458,10 +1518,14 @@ static dsc* evlDateDiff(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::
break;
default:
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_diff_dtime) <<
Arg::Str(function->name));
break;
}
TimeStamp timestamp2;
switch (value2Dsc->dsc_dtype)
{
case dtype_sql_time:
@ -1477,7 +1541,9 @@ static dsc* evlDateDiff(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::
break;
default:
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_diff_dtime) <<
Arg::Str(function->name));
break;
}
@ -1513,7 +1579,9 @@ static dsc* evlDateDiff(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::
case blr_extract_day:
case blr_extract_week:
if (value1Dsc->dsc_dtype == dtype_sql_time || value2Dsc->dsc_dtype == dtype_sql_time)
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_timediff) <<
Arg::Str(function->name));
break;
case blr_extract_hour:
@ -1529,17 +1597,27 @@ static dsc* evlDateDiff(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::
const int type1 = value1Dsc->dsc_dtype;
const int type2 = value2Dsc->dsc_dtype;
if (type1 == dtype_timestamp && type2 == dtype_sql_time ||
type1 == dtype_sql_time && type2 == dtype_timestamp ||
type1 == dtype_sql_date && type2 == dtype_sql_time ||
type1 == dtype_sql_time && type2 == dtype_timestamp)
{
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_tstamptimediff) <<
Arg::Str(function->name));
}
if (type1 == dtype_sql_date && type2 == dtype_sql_time ||
type1 == dtype_sql_time && type2 == dtype_sql_date)
{
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_datetimediff) <<
Arg::Str(function->name));
}
}
break;
default:
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_diffpart) <<
Arg::Str(getPartName(part)) <<
Arg::Str(function->name));
break;
}
@ -1559,13 +1637,13 @@ static dsc* evlDateDiff(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::
case blr_extract_day:
result = timestamp2.value().timestamp_date - timestamp1.value().timestamp_date;
break;
case blr_extract_week:
result = (timestamp2.value().timestamp_date - timestamp1.value().timestamp_date) / 7;
break;
// TO DO: detect overflow in the following cases.
case blr_extract_hour:
result = SINT64(24) * (timestamp2.value().timestamp_date - timestamp1.value().timestamp_date);
result += ((SINT64) timestamp2.value().timestamp_time -
@ -1597,7 +1675,10 @@ static dsc* evlDateDiff(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::
break;
default:
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_diffpart) <<
Arg::Str(getPartName(part)) <<
Arg::Str(function->name));
break;
}
@ -1800,7 +1881,9 @@ static dsc* evlLn(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::jrd_no
const double v = MOV_get_double(value);
if (v <= 0)
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argmustbe_positive) <<
Arg::Str(function->name));
impure->vlu_misc.vlu_double = log(v);
impure->vlu_desc.makeDouble(&impure->vlu_misc.vlu_double);
@ -1827,8 +1910,15 @@ static dsc* evlLog(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::jrd_n
const double v1 = MOV_get_double(value1);
const double v2 = MOV_get_double(value2);
if (v1 <= 0 || v2 <= 0)
status_exception::raise(Arg::Gds(isc_expression_eval_err));
if (v1 <= 0)
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_basemustbe_positive) <<
Arg::Str(function->name));
if (v2 <= 0)
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argmustbe_positive) <<
Arg::Str(function->name));
impure->vlu_misc.vlu_double = log(v2) / log(v1);
impure->vlu_desc.makeDouble(&impure->vlu_misc.vlu_double);
@ -1957,15 +2047,21 @@ static dsc* evlOverlay(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::j
const SLONG auxlen = MOV_get_long(lengthDsc, 0);
if (auxlen < 0)
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argnmustbe_nonneg) <<
Arg::Num(4) <<
Arg::Str(function->name));
length = auxlen;
}
SLONG from = MOV_get_long(fromDsc, 0);
if (from <= 0)
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argnmustbe_positive) <<
Arg::Num(3) <<
Arg::Str(function->name));
const USHORT resultTextType = DataTypeUtil::getResultTextType(value, placing);
CharSet* cs = INTL_charset_lookup(tdbb, resultTextType);
@ -1985,7 +2081,8 @@ static dsc* evlOverlay(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::j
(blob->blb_length / INTL_charset_lookup(tdbb, value->getCharSet())->minBytesPerChar()) *
cs->maxBytesPerChar();
len1 = BLB_get_data(tdbb, blob, (str1 = temp1.getBuffer(len1)), len1, true);
str1 = temp1.getBuffer(len1);
len1 = BLB_get_data(tdbb, blob, str1, len1, true);
}
else
len1 = MOV_make_string2(tdbb, value, resultTextType, &str1, temp1);
@ -1993,7 +2090,7 @@ static dsc* evlOverlay(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::j
MoveBuffer temp2;
UCHAR* str2;
ULONG len2;
if (placing->isBlob())
{
Firebird::UCharBuffer bpb;
@ -2005,7 +2102,8 @@ static dsc* evlOverlay(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::j
(blob->blb_length / INTL_charset_lookup(tdbb, placing->getCharSet())->minBytesPerChar()) *
cs->maxBytesPerChar();
len2 = BLB_get_data(tdbb, blob, (str2 = temp2.getBuffer(len2)), len2, true);
str2 = temp2.getBuffer(len2);
len2 = BLB_get_data(tdbb, blob, str2, len2, true);
}
else
len2 = MOV_make_string2(tdbb, placing, resultTextType, &str2, temp2);
@ -2112,10 +2210,14 @@ static dsc* evlPad(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::jrd_n
const dsc* padLenDsc = EVL_expr(tdbb, args->nod_arg[1]);
if (request->req_flags & req_null) // return NULL if padLenDsc is NULL
return NULL;
const SLONG padLenArg = MOV_get_long(padLenDsc, 0);
if (padLenArg < 0)
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argnmustbe_nonneg) <<
Arg::Num(2) <<
Arg::Str(function->name));
ULONG padLen = static_cast<ULONG>(padLenArg);
@ -2136,7 +2238,7 @@ static dsc* evlPad(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::jrd_n
ULONG charLength1 = cs->length(length1, address1, true);
MoveBuffer buffer2;
UCHAR* address2;
const UCHAR* address2;
ULONG length2;
if (value2 == NULL)
@ -2145,7 +2247,11 @@ static dsc* evlPad(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::jrd_n
length2 = cs->getSpaceLength();
}
else
length2 = MOV_make_string2(tdbb, value2, ttype, &address2, buffer2, false);
{
UCHAR* address2_temp = NULL;
length2 = MOV_make_string2(tdbb, value2, ttype, &address2_temp, buffer2, false);
address2 = address2_temp;
}
ULONG charLength2 = cs->length(length2, address2, true);
@ -2289,7 +2395,11 @@ static dsc* evlPosition(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::
start = MOV_get_long(value3, 0);
if (start <= 0)
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argnmustbe_positive) <<
Arg::Num(3) <<
Arg::Str(function->name));
}
// make descriptor for return value
@ -2397,13 +2507,17 @@ static dsc* evlPower(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::jrd
const double v1 = MOV_get_double(value1);
const double v2 = MOV_get_double(value2);
if ((v1 == 0 && v2 < 0) ||
(v1 < 0 && !(value2->isExact() && value2->dsc_scale == 0)))
{
status_exception::raise(Arg::Gds(isc_expression_eval_err));
}
else
impure->vlu_misc.vlu_double = pow(v1, v2);
if (v1 == 0 && v2 < 0)
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_zeropowneg) <<
Arg::Str(function->name));
if (v1 < 0 && !(value2->isExact() && value2->dsc_scale == 0))
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_negpowfp) <<
Arg::Str(function->name));
impure->vlu_misc.vlu_double = pow(v1, v2);
return &impure->vlu_desc;
}
@ -2744,7 +2858,9 @@ static dsc* evlRound(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::jrd
scale = -MOV_get_long(scaleDsc, 0);
if (!(scale >= MIN_SCHAR && scale <= MAX_SCHAR))
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_scale) <<
Arg::Str(function->name));
}
impure->vlu_misc.vlu_int64 = MOV_get_int64(value, scale);
@ -2794,7 +2910,9 @@ static dsc* evlSqrt(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::jrd_
impure->vlu_misc.vlu_double = MOV_get_double(value);
if (impure->vlu_misc.vlu_double < 0)
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_argmustbe_nonneg) <<
Arg::Str(function->name));
impure->vlu_misc.vlu_double = sqrt(impure->vlu_misc.vlu_double);
impure->vlu_desc.makeDouble(&impure->vlu_misc.vlu_double);
@ -2823,7 +2941,9 @@ static dsc* evlTrunc(Jrd::thread_db* tdbb, const SysFunction* function, Jrd::jrd
resultScale = -MOV_get_long(scaleDsc, 0);
if (!(resultScale >= MIN_SCHAR && resultScale <= MAX_SCHAR))
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_invalid_scale) <<
Arg::Str(function->name));
}
if (value->isExact())
@ -2898,20 +3018,25 @@ static dsc* evlUuidToChar(Jrd::thread_db* tdbb, const SysFunction* function, Jrd
return NULL;
if (!value->isText())
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_binuuid_mustbe_str) <<
Arg::Str(function->name));
USHORT ttype;
UCHAR* data;
const USHORT len = CVT_get_string_ptr(value, &ttype, &data, NULL, 0, ERR_post);
if (len != sizeof(FB_GUID))
status_exception::raise(Arg::Gds(isc_expression_eval_err));
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_binuuid_wrongsize) <<
Arg::Num(sizeof(FB_GUID)) <<
Arg::Str(function->name));
char buffer[39];
char buffer[GUID_BUFF_SIZE];
GuidToString(buffer, reinterpret_cast<const FB_GUID*>(data));
dsc result;
result.makeText(36, ttype_ascii, reinterpret_cast<UCHAR*>(buffer) + 1);
result.makeText(GUID_BODY_SIZE, ttype_ascii, reinterpret_cast<UCHAR*>(buffer) + 1);
EVL_make_value(tdbb, &result, impure);
return &impure->vlu_desc;

View File

@ -327,7 +327,7 @@ RecordBitmap** EVL_bitmap(thread_db* tdbb, jrd_nod* node, RecordBitmap* bitmap_a
RecordNumber rel_dbkey;
rel_dbkey.bid_decode(&numbers[id]);
// NS: Why the heck we decrement record number here? I have no idea, but retain the algorithm for now.
// hvlad: because from the user point of view db_key's begins from 1
// hvlad: because from the user point of view db_key's begins from 1
rel_dbkey.decrement();
if (!bitmap_and || bitmap_and->test(rel_dbkey.getValue()))
RBM_SET(tdbb->getDefaultPool(), &impure->inv_bitmap, rel_dbkey.getValue());
@ -451,7 +451,7 @@ bool EVL_boolean(thread_db* tdbb, jrd_nod* node)
impure->vlu_desc.dsc_dtype = desc[0]->dsc_dtype;
impure->vlu_desc.dsc_sub_type = desc[0]->dsc_sub_type;
impure->vlu_desc.dsc_scale = desc[0]->dsc_scale;
}
}
else {
// Indicate we do not know type of expression.
// This code will force pattern recompile for the next non-null value
@ -871,10 +871,10 @@ dsc* EVL_expr(thread_db* tdbb, jrd_nod* const node)
{
if (node->nod_arg[e_arg_info])
{
EVL_validate(tdbb,
EVL_validate(tdbb,
Item(nod_argument, (IPTR) node->nod_arg[e_arg_message]->nod_arg[e_msg_number],
(IPTR) node->nod_arg[e_arg_number]),
reinterpret_cast<const ItemInfo*>(node->nod_arg[e_arg_info]),
reinterpret_cast<const ItemInfo*>(node->nod_arg[e_arg_info]),
&impure->vlu_desc, request->req_flags & req_null);
}
*impure_flags |= VLU_checked;
@ -1077,7 +1077,7 @@ dsc* EVL_expr(thread_db* tdbb, jrd_nod* const node)
if (node->nod_arg[e_var_info])
{
EVL_validate(tdbb, Item(nod_variable, (IPTR) node->nod_arg[e_var_id]),
reinterpret_cast<const ItemInfo*>(node->nod_arg[e_var_info]),
reinterpret_cast<const ItemInfo*>(node->nod_arg[e_var_info]),
&impure->vlu_desc, impure->vlu_desc.dsc_flags & DSC_null);
}
impure2->vlu_flags |= VLU_checked;
@ -1311,7 +1311,7 @@ bool EVL_field(jrd_rel* relation, Record* record, USHORT id, dsc* desc)
if (default_literal->nod_type == nod_null)
{
ERR_post(Arg::Gds(isc_not_valid) << Arg::Str(temp_field->fld_name) <<
ERR_post(Arg::Gds(isc_not_valid) << Arg::Str(temp_field->fld_name) <<
Arg::Str(NULL_STRING_MARK));
}
@ -1542,7 +1542,7 @@ USHORT EVL_group(thread_db* tdbb, RecordSource* rsb, jrd_nod *const node, USHORT
EVL_make_value(tdbb, &impure->vlu_desc, &vtemp);
else
vtemp.vlu_desc.dsc_address = NULL;
desc = EVL_expr(tdbb, from);
if (request->req_flags & req_null) {
impure->vlu_desc.dsc_address = NULL;
@ -2075,7 +2075,7 @@ void EVL_validate(thread_db* tdbb, const Item& item, const ItemInfo* itemInfo, d
arg = itemInfo->name.c_str();
}
ERR_post(Arg::Gds(status) << Arg::Str(arg) <<
ERR_post(Arg::Gds(status) << Arg::Str(arg) <<
Arg::Str(value));
}
}
@ -2317,7 +2317,8 @@ static dsc* add_datetime(const dsc* desc, const jrd_nod* node, impure_value* val
return add_sql_date(desc, node, value);
case DTYPE_CANNOT:
ERR_post(Arg::Gds(isc_expression_eval_err));
ERR_post(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_invalid_type_datetime_op));
return NULL;
}
}
@ -2528,10 +2529,10 @@ static dsc* add_timestamp(const dsc* desc, const jrd_nod* node, impure_value* va
dsc* result = &value->vlu_desc;
/* Operand 1 is Value -- Operand 2 is desc */
// Operand 1 is Value -- Operand 2 is desc
if (value->vlu_desc.dsc_dtype == dtype_sql_date) {
/* DATE + TIME */
// DATE + TIME
if ((desc->dsc_dtype == dtype_sql_time) &&
((node->nod_type == nod_add) || (node->nod_type == nod_add2)))
{
@ -2541,10 +2542,11 @@ static dsc* add_timestamp(const dsc* desc, const jrd_nod* node, impure_value* va
*(GDS_TIME *) desc->dsc_address;
goto return_result;
}
ERR_post(Arg::Gds(isc_expression_eval_err));
ERR_post(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_onlycan_add_timetodate));
}
else if (desc->dsc_dtype == dtype_sql_date) {
/* TIME + DATE */
// TIME + DATE
if ((value->vlu_desc.dsc_dtype == dtype_sql_time) &&
((node->nod_type == nod_add) || (node->nod_type == nod_add2)))
{
@ -2554,7 +2556,8 @@ static dsc* add_timestamp(const dsc* desc, const jrd_nod* node, impure_value* va
*(GDS_DATE *) desc->dsc_address;
goto return_result;
}
ERR_post(Arg::Gds(isc_expression_eval_err));
ERR_post(Arg::Gds(isc_expression_eval_err)
<< Arg::Gds(isc_onlycan_add_datetotime));
}
/* For historical reasons (behavior prior to V6),
@ -2589,7 +2592,8 @@ static dsc* add_timestamp(const dsc* desc, const jrd_nod* node, impure_value* va
if (!((value->vlu_desc.dsc_dtype == dtype_timestamp) ||
DTYPE_IS_TEXT(value->vlu_desc.dsc_dtype)))
{
ERR_post(Arg::Gds(isc_expression_eval_err));
ERR_post(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_onlycansub_tstampfromtstamp));
}
d1 = get_timestamp_to_isc_ticks(&value->vlu_desc);
@ -2679,7 +2683,8 @@ static dsc* add_timestamp(const dsc* desc, const jrd_nod* node, impure_value* va
// which are errors
if (op1_is_timestamp == op2_is_timestamp)
ERR_post(Arg::Gds(isc_expression_eval_err));
ERR_post(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_onlyoneop_mustbe_tstamp));
if (op1_is_timestamp) {
d1 = get_timestamp_to_isc_ticks(&value->vlu_desc);
@ -2848,7 +2853,7 @@ static dsc* binary_value(thread_db* tdbb, const jrd_nod* node, impure_value* imp
const double divisor = MOV_get_double(desc2);
if (divisor == 0)
{
ERR_post(Arg::Gds(isc_arith_except) <<
ERR_post(Arg::Gds(isc_arith_except) <<
Arg::Gds(isc_exception_float_divide_by_zero));
}
impure->vlu_misc.vlu_double =
@ -3315,7 +3320,7 @@ static dsc* eval_statistical(thread_db* tdbb, jrd_nod* node, impure_value* impur
SLONG count = 0;
ULONG flag = req_null;
double d;
// Handle each variety separately
switch (node->nod_type)
@ -3478,7 +3483,7 @@ static dsc* extract(thread_db* tdbb, jrd_nod* node, impure_value* impure)
impure->vlu_desc.dsc_address =
reinterpret_cast<UCHAR*>(&impure->vlu_misc.vlu_short);
impure->vlu_desc.dsc_length = sizeof(SSHORT);
jrd_req* request = tdbb->getRequest();
// CVC: Borland used special signaling for nulls in outer joins.
if (!value || (request->req_flags & req_null)) {
@ -3498,7 +3503,8 @@ static dsc* extract(thread_db* tdbb, jrd_nod* node, impure_value* impure)
extract_part != blr_extract_second &&
extract_part != blr_extract_millisecond)
{
ERR_post(Arg::Gds(isc_expression_eval_err));
ERR_post(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_invalid_extractpart_time));
}
Firebird::TimeStamp::decode_time(*(GDS_TIME *) value->dsc_address,
&times.tm_hour, &times.tm_min, &times.tm_sec,
@ -3511,7 +3517,8 @@ static dsc* extract(thread_db* tdbb, jrd_nod* node, impure_value* impure)
extract_part == blr_extract_second ||
extract_part == blr_extract_millisecond)
{
ERR_post(Arg::Gds(isc_expression_eval_err));
ERR_post(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_invalid_extractpart_date));
}
Firebird::TimeStamp::decode_date(*(GDS_DATE *) value->dsc_address, &times);
break;
@ -3522,7 +3529,8 @@ static dsc* extract(thread_db* tdbb, jrd_nod* node, impure_value* impure)
break;
default:
ERR_post(Arg::Gds(isc_expression_eval_err));
ERR_post(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_invalidarg_extract));
break;
}
@ -3624,7 +3632,7 @@ static dsc* extract(thread_db* tdbb, jrd_nod* node, impure_value* impure)
fb_assert(false);
part = 0;
}
*(USHORT *) impure->vlu_desc.dsc_address = part;
return &impure->vlu_desc;
}
@ -4185,7 +4193,7 @@ static dsc* divide2(const dsc* desc, impure_value* value, const jrd_nod* node)
const double d2 = MOV_get_double(desc);
if (d2 == 0.0)
{
ERR_post(Arg::Gds(isc_arith_except) <<
ERR_post(Arg::Gds(isc_arith_except) <<
Arg::Gds(isc_exception_float_divide_by_zero));
}
const double d1 = MOV_get_double(&value->vlu_desc);
@ -4237,7 +4245,7 @@ static dsc* divide2(const dsc* desc, impure_value* value, const jrd_nod* node)
SINT64 i2 = MOV_get_int64(desc, desc->dsc_scale);
if (i2 == 0)
{
ERR_post(Arg::Gds(isc_arith_except) <<
ERR_post(Arg::Gds(isc_arith_except) <<
Arg::Gds(isc_exception_integer_divide_by_zero));
}
@ -4642,7 +4650,7 @@ static bool string_boolean(thread_db* tdbb, jrd_nod* node, dsc* desc1,
return string_function(tdbb, node, l1, p1, l2, p2, type1, computed_invariant);
}
/* Source string is a blob, things get interesting */
Firebird::HalfStaticArray<UCHAR, BUFFER_SMALL> buffer;
@ -4683,7 +4691,7 @@ static bool string_boolean(thread_db* tdbb, jrd_nod* node, dsc* desc1,
a positive result is obtained */
bool ret_val = false;
switch (node->nod_type)
{
case nod_like:
@ -4973,7 +4981,7 @@ static bool string_function(thread_db* tdbb,
return evaluator->result();
}
if (node->nod_type == nod_like)
return obj->like(*tdbb->getDefaultPool(), p1, l1, p2, l2, escape_str, escape_length);
@ -5031,7 +5039,7 @@ static dsc* string_length(thread_db* tdbb, jrd_nod* node, impure_value* impure)
ERR_post(Arg::Gds(isc_arith_except) <<
Arg::Gds(isc_numeric_out_of_range));
}
length = l;
}
break;

View File

@ -24,7 +24,6 @@
* Contributor(s): ______________________________________.
*
*
* $Id: guid.h,v 1.9 2005-05-27 22:44:11 asfernandes Exp $
*
*/
@ -36,8 +35,10 @@
#include "fb_types.h"
const int GUID_BUFF_SIZE = 39;
const int GUID_BODY_SIZE = 36;
struct FB_GUID {
struct FB_GUID
{
USHORT data[8];
};

View File

@ -63,22 +63,25 @@ void GenerateRandomBytes(void* buffer, size_t size)
if (errno != EINTR)
Firebird::system_call_failed::raise("close");
// In case when close() is interrupted by a signal,
// the state of fd is unspecified - give up and return success.
// the state of fd is unspecified - give up and return success.
}
}
void GenerateGuid(FB_GUID* guid) {
void GenerateGuid(FB_GUID* guid)
{
GenerateRandomBytes(guid, sizeof(FB_GUID));
}
void GuidToString(char* buffer, const FB_GUID* guid) {
sprintf(buffer, "{%04hX%04hX-%04hX-%04hX-%04hX-%04hX%04hX%04hX}",
void GuidToString(char* buffer, const FB_GUID* guid)
{
sprintf(buffer, "{%04hX%04hX-%04hX-%04hX-%04hX-%04hX%04hX%04hX}",
guid->data[0], guid->data[1], guid->data[2], guid->data[3],
guid->data[4], guid->data[5], guid->data[6], guid->data[7]);
}
void StringToGuid(FB_GUID* guid, const char* buffer) {
sscanf(buffer, "{%04hX%04hX-%04hX-%04hX-%04hX-%04hX%04hX%04hX}",
void StringToGuid(FB_GUID* guid, const char* buffer)
{
sscanf(buffer, "{%04hX%04hX-%04hX-%04hX-%04hX-%04hX%04hX%04hX}",
&guid->data[0], &guid->data[1], &guid->data[2], &guid->data[3],
&guid->data[4], &guid->data[5], &guid->data[6], &guid->data[7]);
}

View File

@ -25,7 +25,7 @@
*
*
*/
// minimum win32 version: win95 / winnt4
#define _WIN32_WINNT 0x0400
@ -47,16 +47,16 @@ void GenerateRandomBytes(void* buffer, size_t size)
{
if (GetLastError() == NTE_BAD_KEYSET)
{
// A common cause of this error is that the key container does not exist.
// To create a key container, call CryptAcquireContext
// using the CRYPT_NEWKEYSET flag.
// A common cause of this error is that the key container does not exist.
// To create a key container, call CryptAcquireContext
// using the CRYPT_NEWKEYSET flag.
if (! CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL,
CRYPT_VERIFYCONTEXT | CRYPT_NEWKEYSET))
{
Firebird::system_call_failed::raise("CryptAcquireContext");
}
}
else
else
{
Firebird::system_call_failed::raise("CryptAcquireContext");
}
@ -69,20 +69,23 @@ void GenerateRandomBytes(void* buffer, size_t size)
CryptReleaseContext(hProv, 0);
}
void GenerateGuid(FB_GUID* guid) {
const HRESULT error = CoCreateGuid((GUID*)guid);
void GenerateGuid(FB_GUID* guid)
{
const HRESULT error = CoCreateGuid((GUID*) guid);
if (!SUCCEEDED(error))
Firebird::system_call_failed::raise("CoCreateGuid", error);
}
void GuidToString(char* buffer, const FB_GUID* guid) {
sprintf(buffer, "{%04hX%04hX-%04hX-%04hX-%04hX-%04hX%04hX%04hX}",
void GuidToString(char* buffer, const FB_GUID* guid)
{
sprintf(buffer, "{%04hX%04hX-%04hX-%04hX-%04hX-%04hX%04hX%04hX}",
guid->data[0], guid->data[1], guid->data[2], guid->data[3],
guid->data[4], guid->data[5], guid->data[6], guid->data[7]);
}
void StringToGuid(FB_GUID* guid, const char* buffer) {
sscanf(buffer, "{%04hX%04hX-%04hX-%04hX-%04hX-%04hX%04hX%04hX}",
void StringToGuid(FB_GUID* guid, const char* buffer)
{
sscanf(buffer, "{%04hX%04hX-%04hX-%04hX-%04hX-%04hX%04hX%04hX}",
&guid->data[0], &guid->data[1], &guid->data[2], &guid->data[3],
&guid->data[4], &guid->data[5], &guid->data[6], &guid->data[7]);
}

View File

@ -1,7 +1,7 @@
/* MAX_NUMBER is the next number to be used, always one more than the highest message number. */
set bulk_insert INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES (?, ?, ?, ?);
--
('2008-09-04 13:01:57', 'JRD', 0, 617)
('2008-09-28 08:41:09', 'JRD', 0, 650)
('2005-09-02 00:55:59', 'QLI', 1, 513)
('1996-11-07 13:38:37', 'GDEF', 2, 345)
('2007-04-07 13:11:00', 'GFIX', 3, 116)

View File

@ -716,6 +716,43 @@ COMMIT WORK;
('ibutil_not_loaded', NULL, NULL, NULL, 0, 614, NULL, 'ib_util library has not been loaded to deallocate memory returned by FREE_IT function', NULL, NULL)
('circular_computed', NULL, NULL, NULL, 0, 615, NULL, 'Cannot have circular dependencies with computed fields', NULL, NULL)
('psw_db_error', NULL, NULL, NULL, 0, 616, NULL, 'Security database error', NULL, NULL)
-- These add more information to the dumb isc_expression_eval_err
('invalid_type_datetime_op', 'add_datetime', 'evl.cpp', NULL, 0, 617, NULL, 'Invalid data type in DATE/TIME/TIMESTAMP addition or subtraction in add_datettime()', NULL, NULL)
('onlycan_add_timetodate', 'add_timestamp', 'evl.cpp', NULL, 0, 618, NULL, 'Only a TIME value can be added to a DATE value', NULL, NULL)
('onlycan_add_datetotime', 'add_timestamp', 'evl.cpp', NULL, 0, 619, NULL, 'Only a DATE value can be added to a TIME value', NULL, NULL)
('onlycansub_tstampfromtstamp', 'add_timestamp', 'evl.cpp', NULL, 0, 620, NULL, 'TIMESTAMP values can be subtracted only from another TIMESTAMP value', NULL, NULL)
('onlyoneop_mustbe_tstamp', 'add_timestamp', 'evl.cpp', NULL, 0, 621, NULL, 'Only one operand can be of type TIMESTAMP', NULL, NULL)
('invalid_extractpart_time', 'extract', 'evl.cpp', NULL, 0, 622, NULL, 'Only HOUR, MINUTE, SECOND and MILLISECOND can be extracted from TIME values', NULL, NULL)
('invalid_extractpart_date', 'extract', 'evl.cpp', NULL, 0, 623, NULL, 'HOUR, MINUTE, SECOND and MILLISECOND cannot be extracted from DATE values', NULL, NULL)
('invalidarg_extract', 'extract', 'evl.cpp', NULL, 0, 624, NULL, 'Invalid argument for extrac() not being of DATE/TIME/TIMESTAMP type', NULL, NULL)
('sysf_argmustbe_exact', 'makeBin/makeBinShift', 'evl.cpp', NULL, 0, 625, NULL, 'Arguments for @1 must be integral types or NUMERIC/DECIMAL without scale', NULL, NULL)
('sysf_argmustbe_exact_or_fp', 'makeRound', 'evl.cpp', NULL, 0, 626, NULL, 'First argument for @ must be integral type or floating point type', NULL, NULL)
('sysf_argviolates_uuidtype', 'evlCharToUuid', 'SysFunction.cpp', NULL, 0, 627, NULL, 'Human readable UUID argument for @1 must be of string type', NULL, NULL)
('sysf_argviolates_uuidlen', 'evlCharToUuid', 'SysFunction.cpp', NULL, 0, 628, NULL, 'Human readable UUID argument for @2 must be of exact length @1', NULL, NULL)
('sysf_argviolates_uuidfmt', 'evlCharToUuid', 'SysFunction.cpp', NULL, 0, 629, NULL, 'Human readable UUID argument for @3 must have "-" at position @2 instead of "@1"', NULL, NULL)
('sysf_argviolates_guidigits', 'evlCharToUuid', 'SysFunction.cpp', NULL, 0, 630, NULL, 'Human readable UUID argument for @3 must have hex digit at position @2 instead of "@1"', NULL, NULL)
('sysf_invalid_addpart_time', 'evlDateAdd', 'SysFunction.cpp', NULL, 0, 631, NULL, 'Only HOUR, MINUTE, SECOND and MILLISECOND can be added to TIME values in @1', NULL, NULL)
('sysf_invalid_add_datetime', 'evlDateAdd', 'evl.cpp', NULL, 0, 632, NULL, 'Invalid data type in addition of part to DATE/TIME/TIMESTAMP in @1', NULL, NULL)
('sysf_invalid_addpart_dtime', 'evlDateAdd', 'evl.cpp', NULL, 0, 633, NULL, 'Invalid part @1 to be added to a DATE/TIME/TIMESTAMP value in @2', NULL, NULL)
('sysf_invalid_add_dtime_rc', 'evlDateAdd', 'evl.cpp', NULL, 0, 634, NULL, 'Expected DATE/TIME/TIMESTAMP type in evlDateAdd() result', NULL, NULL)
('sysf_invalid_diff_dtime', 'evlDateDiff', 'evl.cpp', NULL, 0, 635, NULL, 'Expected DATE/TIME/TIMESTAMP type as first and second argument to @1', NULL, NULL)
('sysf_invalid_timediff', 'evlDateDiff', 'evl.cpp', NULL, 0, 636, NULL, 'The result of TIME-<value> in @1 cannot be expressed in YEAR, MONTH, DAY or WEEK', NULL, NULL)
('sysf_invalid_tstamptimediff', 'evlDateDiff', 'evl.cpp', NULL, 0, 637, NULL, 'The result of TIME-TIMESTAMP or TIMESTAMP-TIME in @1 cannot be expressed in HOUR, MINUTE, SECOND or MILLISECOND', NULL, NULL)
('sysf_invalid_datetimediff', 'evlDateDiff', 'evl.cpp', NULL, 0, 638, NULL, 'The result of DATE-TIME or TIME-DATE in @1 cannot be expressed in HOUR, MINUTE, SECOND and MILLISECOND', NULL, NULL)
('sysf_invalid_diffpart', 'evlDateDiff', 'evl.cpp', NULL, 0, 639, NULL, 'Invalid part @1 to express the difference between two DATE/TIME/TIMESTAMP values in @2', NULL, NULL)
('sysf_argmustbe_positive', 'evlLn/evlLn', 'evl.cpp', NULL, 0, 640, NULL, 'Argument for @1 must be positive', NULL, NULL)
('sysf_basemustbe_positive', 'evlLog/evlPosition', 'evl.cpp', NULL, 0, 641, NULL, 'Base for @1 must be positive', NULL, NULL)
('sysf_argnmustbe_nonneg', 'evlOverlay/evlPad', 'evl.cpp', NULL, 0, 642, NULL, 'Argument #@1 for @2 must be zero or positive', NULL, NULL)
('sysf_argnmustbe_positive', 'evlOverlay', 'evl.cpp', NULL, 0, 643, NULL, 'Argument #@1 for @2 must be positive', NULL, NULL)
('sysf_invalid_zeropowneg', 'evlPower', 'evl.cpp', NULL, 0, 644, NULL, 'Base for @1 cannot be zero if exponent is negative', NULL, NULL)
('sysf_invalid_negpowfp', 'evlPower', 'evl.cpp', NULL, 0, 645, NULL, 'Base for @1 cannot be negative if exponent is not an integral value', NULL, NULL)
-- Validate that arg is integer?
('sysf_invalid_scale', 'evlRound/evlTrunc', 'evl.cpp', NULL, 0, 646, NULL, 'The numeric scale must be between -128 and 127 in @1', NULL, NULL)
('sysf_argmustbe_nonneg', 'evlSqrt', 'evl.cpp', NULL, 0, 647, NULL, 'Argument for @1 must be zero or positive', NULL, NULL)
('sysf_binuuid_mustbe_str', 'evlUuidToChar', 'evl.cpp', NULL, 0, 648, NULL, 'Binary UUID argument for @1 must be of string type', NULL, NULL)
('sysf_binuuid_wrongsize', 'evlUuidToChar', 'evl.cpp', NULL, 0, 649, NULL, 'Binary UUID argument for @2 must use @1 bytes', NULL, NULL)
--('', '', 'evl.cpp', NULL, 0, , NULL, '', NULL, NULL)
-- End of extras for isc_expression_eval_err
-- QLI
(NULL, NULL, NULL, NULL, 1, 0, NULL, 'expected type', NULL, NULL);
(NULL, NULL, NULL, NULL, 1, 1, NULL, 'bad block type', NULL, NULL);

View File

@ -617,6 +617,41 @@ set bulk_insert INSERT INTO SYSTEM_ERRORS (SQL_CODE, SQL_CLASS, SQL_SUBCLASS, FA
(-901, '39', '000', 0, 614, 'ibutil_not_loaded', NULL, NULL)
(-904, '42', '000', 0, 615, 'circular_computed', NULL, NULL)
(-902, '28', '000', 0, 616, 'psw_db_error', NULL, NULL)
-- For the following values I simply copied the error code and SQL codes from expression_eval_err
(-833, '42', '000', 0, 617, 'invalid_type_datetime_op', NULL, NULL)
(-833, '42', '000', 0, 618, 'onlycan_add_timetodate', NULL, NULL)
(-833, '42', '000', 0, 619, 'onlycan_add_datetotime', NULL, NULL)
(-833, '42', '000', 0, 620, 'onlycansub_tstampfromtstamp', NULL, NULL)
(-833, '42', '000', 0, 621, 'onlyoneop_mustbe_tstamp', NULL, NULL)
(-833, '42', '000', 0, 622, 'invalid_extractpart_time', NULL, NULL)
(-833, '42', '000', 0, 623, 'invalid_extractpart_date', NULL, NULL)
(-833, '42', '000', 0, 624, 'invalidarg_extract', NULL, NULL)
(-833, '42', '000', 0, 625, 'sysf_argmustbe_exact', NULL, NULL)
(-833, '42', '000', 0, 626, 'sysf_argmustbe_exact_or_fp', NULL, NULL)
(-833, '42', '000', 0, 627, 'sysf_argviolates_uuidtype', NULL, NULL)
(-833, '42', '000', 0, 628, 'sysf_argviolates_uuidlen', NULL, NULL)
(-833, '42', '000', 0, 629, 'sysf_argviolates_uuidfmt', NULL, NULL)
(-833, '42', '000', 0, 630, 'sysf_argviolates_guidigits', NULL, NULL)
(-833, '42', '000', 0, 631, 'sysf_invalid_addpart_time', NULL, NULL)
(-833, '42', '000', 0, 632, 'sysf_invalid_add_datetime', NULL, NULL)
(-833, '42', '000', 0, 633, 'sysf_invalid_addpart_dtime', NULL, NULL)
(-833, '42', '000', 0, 634, 'sysf_invalid_add_dtime_rc', NULL, NULL)
(-833, '42', '000', 0, 635, 'sysf_invalid_diff_dtime', NULL, NULL)
(-833, '42', '000', 0, 636, 'sysf_invalid_timediff', NULL, NULL)
(-833, '42', '000', 0, 637, 'sysf_invalid_tstamptimediff', NULL, NULL)
(-833, '42', '000', 0, 638, 'sysf_invalid_datetimediff', NULL, NULL)
(-833, '42', '000', 0, 639, 'sysf_invalid_diffpart', NULL, NULL)
(-833, '42', '000', 0, 640, 'sysf_argmustbe_positive', NULL, NULL)
(-833, '42', '000', 0, 641, 'sysf_basemustbe_positive', NULL, NULL)
(-833, '42', '000', 0, 642, 'sysf_argnmustbe_nonneg', NULL, NULL)
(-833, '42', '000', 0, 643, 'sysf_argnmustbe_positive', NULL, NULL)
(-833, '42', '000', 0, 644, 'sysf_invalid_zeropowneg', NULL, NULL)
(-833, '42', '000', 0, 645, 'sysf_invalid_negpowfp', NULL, NULL)
(-833, '42', '000', 0, 646, 'sysf_invalid_scale', NULL, NULL)
(-833, '42', '000', 0, 647, 'sysf_argmustbe_nonneg', NULL, NULL)
(-833, '42', '000', 0, 648, 'sysf_binuuid_mustbe_str', NULL, NULL)
(-833, '42', '000', 0, 649, 'sysf_binuuid_wrongsize', NULL, NULL)
-- End of expression_eval_err subcodes
-- GFIX
(-901, '00', '000', 3, 1, 'gfix_db_name', NULL, NULL)
(-901, '00', '000', 3, 2, 'gfix_invalid_sw', NULL, NULL)