8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 20:03:03 +01:00
This commit is contained in:
asfernandes 2008-08-16 15:42:38 +00:00
parent 54d0cd6f73
commit 736659c1a1
5 changed files with 111 additions and 76 deletions

View File

@ -524,8 +524,8 @@ void DDL_resolve_intl_type2(CompiledStatement* statement,
{
if (ENCODE_ODS(statement->req_dbb->dbb_ods_version, statement->req_dbb->dbb_minor_version) < ODS_11_1)
{
// Feature not supported on ODS version older than %d.%d
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-804) <<
// Feature not supported on ODS version older than %d.%d
Arg::Gds(isc_dsql_feature_not_supported_ods) << Arg::Num(11) << Arg::Num(1));
}
@ -559,8 +559,8 @@ void DDL_resolve_intl_type2(CompiledStatement* statement,
if (!fld)
{
// column @1 does not exist in table/view @2
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-607) << Arg::Gds(isc_dsql_command_err) <<
// column @1 does not exist in table/view @2
Arg::Gds(isc_dyn_column_does_not_exist) <<
Arg::Str(field->fld_type_of_name) << Arg::Str(field->fld_type_of_table->str_data));
}
@ -569,8 +569,8 @@ void DDL_resolve_intl_type2(CompiledStatement* statement,
{
if (!METD_get_domain(statement, field, field->fld_type_of_name.c_str()))
{
// Specified domain or source field does not exist
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-607) << Arg::Gds(isc_dsql_command_err) <<
// Specified domain or source field does not exist
Arg::Gds(isc_dsql_domain_not_found) << Arg::Str(field->fld_type_of_name));
}
}
@ -599,13 +599,14 @@ void DDL_resolve_intl_type2(CompiledStatement* statement,
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) <<
Arg::Gds(isc_dsql_datatype_err) <<
Arg::Gds(isc_dsql_blob_type_unknown) << Arg::Str(((dsql_str*)field->fld_sub_type_name)->str_data));
Arg::Gds(isc_dsql_blob_type_unknown) << Arg::Str(((dsql_str*) field->fld_sub_type_name)->str_data));
}
field->fld_sub_type = blob_sub_type;
}
if (field->fld_sub_type > isc_blob_text)
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) << Arg::Gds(isc_dsql_datatype_err) <<
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) <<
Arg::Gds(isc_dsql_datatype_err) <<
Arg::Gds(isc_subtype_for_internal_use));
}
if (field->fld_character_set && (field->fld_sub_type == isc_blob_untyped))
@ -614,12 +615,14 @@ void DDL_resolve_intl_type2(CompiledStatement* statement,
}
if (field->fld_character_set && (field->fld_sub_type != isc_blob_text))
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) << Arg::Gds(isc_dsql_datatype_err) <<
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) <<
Arg::Gds(isc_dsql_datatype_err) <<
Arg::Gds(isc_collation_requires_text));
}
if (collation_name && (field->fld_sub_type != isc_blob_text))
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) << Arg::Gds(isc_dsql_datatype_err) <<
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) <<
Arg::Gds(isc_dsql_datatype_err) <<
Arg::Gds(isc_collation_requires_text));
}
if (field->fld_sub_type != isc_blob_text) {
@ -716,7 +719,8 @@ void DDL_resolve_intl_type2(CompiledStatement* statement,
if (!resolved_charset)
{
// specified character set not found
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) << Arg::Gds(isc_dsql_datatype_err) <<
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) <<
Arg::Gds(isc_dsql_datatype_err) <<
Arg::Gds(isc_charset_not_found) << Arg::Str(charset_name));
}
field->fld_character_set_id = resolved_charset->intlsym_charset_id;
@ -738,7 +742,8 @@ void DDL_resolve_intl_type2(CompiledStatement* statement,
charSetName = METD_get_charset_name(statement, field->fld_character_set_id);
// Specified collation not found
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) << Arg::Gds(isc_dsql_datatype_err) <<
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) <<
Arg::Gds(isc_dsql_datatype_err) <<
Arg::Gds(isc_collation_not_found) << Arg::Str(collation_name->str_data) << Arg::Str(charSetName));
}
@ -749,7 +754,8 @@ void DDL_resolve_intl_type2(CompiledStatement* statement,
if ((field->fld_character_set_id != resolved_type->intlsym_charset_id)
&& (field->fld_character_set_id != ttype_dynamic))
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) << Arg::Gds(isc_dsql_datatype_err) <<
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) <<
Arg::Gds(isc_dsql_datatype_err) <<
Arg::Gds(isc_collation_not_for_charset) << Arg::Str(collation_name->str_data));
}
@ -795,7 +801,8 @@ static void assign_field_length (
}
if (field_length > MAX_COLUMN_SIZE)
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) << Arg::Gds(isc_dsql_datatype_err) <<
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) <<
Arg::Gds(isc_dsql_datatype_err) <<
Arg::Gds(isc_imp_exc) <<
Arg::Gds(isc_field_name) << Arg::Str(field->fld_name));
}
@ -1830,7 +1837,7 @@ static void define_domain(CompiledStatement* statement)
constraint, context number 0 is reserved for the
"blr_fid, 0, 0, 0," which is emitted for a
nod_dom_value, corresponding to an occurance of the
VALUE keyword in the bod of the check constraint.
VALUE keyword in the body of the check constraint.
-- chrisj 1999-08-20 */
statement->req_context_number++;
@ -1941,15 +1948,15 @@ static void define_field(CompiledStatement* statement,
if (!METD_get_domain(statement, field, domain_name->str_data))
{
// Specified domain or source field does not exist
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-607) <<
Arg::Gds(isc_dsql_command_err) <<
// Specified domain or source field does not exist
Arg::Gds(isc_dsql_domain_not_found) << Arg::Str(domain_name->str_data));
}
DDL_resolve_intl_type( statement,
field,
reinterpret_cast<const dsql_str*>(element->nod_arg[e_dfl_collate]));
DDL_resolve_intl_type(statement, field,
reinterpret_cast<const dsql_str*>(element->nod_arg[e_dfl_collate]));
if (element->nod_arg[e_dfl_collate]) {
statement->append_number(isc_dyn_fld_collation,
field->fld_collation_id);
@ -3049,9 +3056,9 @@ static void define_shadow(CompiledStatement* statement)
if (!length && !file->fil_start)
{
// Preceding file did not specify length, so %s must include starting page number
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-607) <<
Arg::Gds(isc_dsql_command_err) <<
// Preceding file did not specify length, so %s must include starting page number
Arg::Gds(isc_dsql_file_length_err) << Arg::Str(file->fil_name->str_data));
}
@ -3315,9 +3322,9 @@ static void define_udf(CompiledStatement* statement)
field->fld_dtype == dtype_blob ||
field->fld_dtype == dtype_timestamp))
{
// Return mode by value not allowed for this data type
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-60) <<
Arg::Gds(isc_dsql_command_err) <<
// Return mode by value not allowed for this data type
Arg::Gds(isc_return_mode_err));
}
@ -3329,10 +3336,10 @@ static void define_udf(CompiledStatement* statement)
blob_position = (arguments) ? arguments->nod_count + 1 : 1;
if (blob_position > MAX_UDF_ARGUMENTS)
{
// External functions can not have more than 10 parameters
// Or 9 if the function returns a BLOB
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-607) <<
Arg::Gds(isc_dsql_command_err) <<
// External functions can not have more than 10 parameters
// Or 9 if the function returns a BLOB
Arg::Gds(isc_extern_func_err));
}
@ -3421,9 +3428,9 @@ static void define_udf(CompiledStatement* statement)
{
if (position > MAX_UDF_ARGUMENTS)
{
// External functions can not have more than 10 parameters
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-607) <<
Arg::Gds(isc_dsql_command_err) <<
// External functions can not have more than 10 parameters
Arg::Gds(isc_extern_func_err));
}
@ -3841,9 +3848,9 @@ static void define_view(CompiledStatement* statement, NOD_TYPE op)
if (!ptr && !field_string)
{
// must specify field name for view select expression
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-607) <<
Arg::Gds(isc_dsql_command_err) <<
// must specify field name for view select expression
Arg::Gds(isc_specify_field_err));
}
@ -3873,9 +3880,9 @@ static void define_view(CompiledStatement* statement, NOD_TYPE op)
{
if (modified_fields.exist(rel_field))
{
// column @1 appears more than once in ALTER VIEW
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
Arg::Gds(isc_dsql_command_err) <<
// column @1 appears more than once in ALTER VIEW
Arg::Gds(isc_dsql_col_more_than_once_view) << Arg::Str(field_string));
}
@ -3933,9 +3940,9 @@ static void define_view(CompiledStatement* statement, NOD_TYPE op)
if (ptr != end)
{
// number of fields does not match select list
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-607) <<
Arg::Gds(isc_dsql_command_err) <<
// number of fields does not match select list
Arg::Gds(isc_num_field_err));
}
@ -4469,19 +4476,19 @@ static void foreign_key(CompiledStatement* statement, dsql_nod* element, const c
referenced field, fail. */
if (!columns2)
{
ERRD_post (Arg::Gds(isc_sqlerr) << Arg::Num(-607) <<
Arg::Gds(isc_dsql_command_err) <<
/* "REFERENCES table" without "(column)" requires PRIMARY
KEY on referenced table */
// "REFERENCES table" without "(column)" requires PRIMARY
// KEY on referenced table
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-607) <<
Arg::Gds(isc_dsql_command_err) <<
Arg::Gds(isc_reftable_requires_pk));
}
}
if (columns2 && (columns1->nod_count != columns2->nod_count))
{
ERRD_post (Arg::Gds(isc_sqlerr) << Arg::Num(-607) <<
Arg::Gds(isc_dsql_command_err) <<
// foreign key field count does not match primary key
// foreign key field count does not match primary key
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-607) <<
Arg::Gds(isc_dsql_command_err) <<
Arg::Gds(isc_key_field_count_err));
}
@ -7139,4 +7146,3 @@ void clearPermanentField (dsql_rel* relation, bool perm)
relation->rel_fields->fld_relation = relation;
}
}

View File

@ -556,7 +556,7 @@ void DSQL_free_statement(thread_db* tdbb,
// Just close the cursor associated with the request
if (!(request->req_flags & REQ_cursor_open))
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(- 501) <<
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-501) <<
Arg::Gds(isc_dsql_cursor_close_err));
}
close_cursor(tdbb, request);
@ -602,8 +602,8 @@ void DSQL_insert(thread_db* tdbb,
if (!(request->req_flags & REQ_cursor_open))
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-504) <<
Arg::Gds(isc_dsql_cursor_err) <<
Arg::Gds(isc_dsql_cursor_not_open));
Arg::Gds(isc_dsql_cursor_err) <<
Arg::Gds(isc_dsql_cursor_not_open));
}
}

View File

@ -727,12 +727,12 @@ void GEN_port(CompiledStatement* statement, dsql_msg* message)
message->msg_length = (USHORT) offset;
// Allocate buffer for message
// Allocate buffer for message
const ULONG new_len = message->msg_length + DOUBLE_ALIGN - 1;
dsql_str* buffer = FB_NEW_RPT(*tdbb->getDefaultPool(), new_len) dsql_str;
message->msg_buffer = (UCHAR *) FB_ALIGN((U_IPTR) buffer->str_data, DOUBLE_ALIGN);
// Relocate parameter descriptors to point direction into message buffer
// Relocate parameter descriptors to point direction into message buffer
for (parameter = message->msg_parameters; parameter;
parameter = parameter->par_next)

View File

@ -2917,51 +2917,53 @@ numeric_type : KW_NUMERIC prec_scale
prec_scale :
{
lex.g_field->fld_dtype = dtype_long;
lex.g_field->fld_dtype = dtype_long;
lex.g_field->fld_length = sizeof (SLONG);
lex.g_field->fld_precision = 9;
}
lex.g_field->fld_precision = 9;
}
| '(' signed_long_integer ')'
{
if ( ((IPTR) $2 < 1) || ((IPTR) $2 > 18) )
yyabandon (-842, isc_precision_err);
/* Precision most be between 1 and 18. */
if ((IPTR) $2 > 9)
{
{
if ( ( (client_dialect <= SQL_DIALECT_V5) &&
(db_dialect > SQL_DIALECT_V5) ) ||
( (client_dialect > SQL_DIALECT_V5) &&
(db_dialect <= SQL_DIALECT_V5) ) )
(db_dialect > SQL_DIALECT_V5) ) ||
( (client_dialect > SQL_DIALECT_V5) &&
(db_dialect <= SQL_DIALECT_V5) ) )
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-817) <<
Arg::Gds(isc_ddl_not_allowed_by_db_sql_dial) << Arg::Num(db_dialect));
if (client_dialect <= SQL_DIALECT_V5)
{
{
lex.g_field->fld_dtype = dtype_double;
lex.g_field->fld_length = sizeof (double);
}
}
else
{
{
if (client_dialect == SQL_DIALECT_V6_TRANSITION)
{
{
ERRD_post_warning(Arg::Warning(isc_dsql_warn_precision_ambiguous));
ERRD_post_warning(Arg::Warning(isc_dsql_warn_precision_ambiguous1));
ERRD_post_warning(Arg::Warning(isc_dsql_warn_precision_ambiguous2));
}
}
lex.g_field->fld_dtype = dtype_int64;
lex.g_field->fld_length = sizeof (SINT64);
}
}
else
}
else
{
if ((IPTR) $2 < 5)
{
{
lex.g_field->fld_dtype = dtype_short;
lex.g_field->fld_length = sizeof (SSHORT);
}
}
else
{
{
lex.g_field->fld_dtype = dtype_long;
lex.g_field->fld_length = sizeof (SLONG);
}
}
}
lex.g_field->fld_precision = (USHORT)(IPTR) $2;
}
| '(' signed_long_integer ',' signed_long_integer ')'
@ -2973,44 +2975,46 @@ prec_scale :
yyabandon (-842, isc_scale_nogt);
/* Scale must be between 0 and precision */
if ((IPTR) $2 > 9)
{
{
if ( ( (client_dialect <= SQL_DIALECT_V5) &&
(db_dialect > SQL_DIALECT_V5) ) ||
( (client_dialect > SQL_DIALECT_V5) &&
(db_dialect <= SQL_DIALECT_V5) ) )
(db_dialect > SQL_DIALECT_V5) ) ||
( (client_dialect > SQL_DIALECT_V5) &&
(db_dialect <= SQL_DIALECT_V5) ) )
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-817) <<
Arg::Gds(isc_ddl_not_allowed_by_db_sql_dial) << Arg::Num(db_dialect));
}
if (client_dialect <= SQL_DIALECT_V5)
{
{
lex.g_field->fld_dtype = dtype_double;
lex.g_field->fld_length = sizeof (double);
}
}
else
{
{
if (client_dialect == SQL_DIALECT_V6_TRANSITION)
{
{
ERRD_post_warning(Arg::Warning(isc_dsql_warn_precision_ambiguous));
ERRD_post_warning(Arg::Warning(isc_dsql_warn_precision_ambiguous1));
ERRD_post_warning(Arg::Warning(isc_dsql_warn_precision_ambiguous2));
}
}
/* client_dialect >= SQL_DIALECT_V6 */
lex.g_field->fld_dtype = dtype_int64;
lex.g_field->fld_length = sizeof (SINT64);
}
}
}
else
{
{
if ((IPTR) $2 < 5)
{
{
lex.g_field->fld_dtype = dtype_short;
lex.g_field->fld_length = sizeof (SSHORT);
}
}
else
{
{
lex.g_field->fld_dtype = dtype_long;
lex.g_field->fld_length = sizeof (SLONG);
}
}
}
lex.g_field->fld_precision = (USHORT)(IPTR) $2;
lex.g_field->fld_scale = - (SSHORT)(IPTR) $4;
}
@ -4251,25 +4255,33 @@ value : column_name
datetime_value_expression : CURRENT_DATE
{
if (client_dialect < SQL_DIALECT_V6_TRANSITION)
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
Arg::Gds(isc_sql_dialect_datatype_unsupport) << Arg::Num(client_dialect) <<
Arg::Str("DATE"));
}
if (db_dialect < SQL_DIALECT_V6_TRANSITION)
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
Arg::Gds(isc_sql_dialect_datatype_unsupport) << Arg::Num(db_dialect) <<
Arg::Str("DATE"));
}
$$ = make_node (nod_current_date, 0, NULL);
}
| CURRENT_TIME sec_precision_opt
{
if (client_dialect < SQL_DIALECT_V6_TRANSITION)
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
Arg::Gds(isc_sql_dialect_datatype_unsupport) << Arg::Num(client_dialect) <<
Arg::Str("TIME"));
}
if (db_dialect < SQL_DIALECT_V6_TRANSITION)
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
Arg::Gds(isc_sql_dialect_datatype_unsupport) << Arg::Num(db_dialect) <<
Arg::Str("TIME"));
}
$$ = make_node (nod_current_time, 1, $2);
}
| CURRENT_TIMESTAMP sec_precision_opt
@ -4320,25 +4332,33 @@ u_constant : u_numeric_constant
| DATE STRING
{
if (client_dialect < SQL_DIALECT_V6_TRANSITION)
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
Arg::Gds(isc_sql_dialect_datatype_unsupport) << Arg::Num(client_dialect) <<
Arg::Str("DATE"));
}
if (db_dialect < SQL_DIALECT_V6_TRANSITION)
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
Arg::Gds(isc_sql_dialect_datatype_unsupport) << Arg::Num(db_dialect) <<
Arg::Str("DATE"));
}
$$ = MAKE_constant ((dsql_str*) $2, CONSTANT_DATE);
}
| TIME STRING
{
if (client_dialect < SQL_DIALECT_V6_TRANSITION)
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
Arg::Gds(isc_sql_dialect_datatype_unsupport) << Arg::Num(client_dialect) <<
Arg::Str("TIME"));
}
if (db_dialect < SQL_DIALECT_V6_TRANSITION)
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
Arg::Gds(isc_sql_dialect_datatype_unsupport) << Arg::Num(db_dialect) <<
Arg::Str("TIME"));
}
$$ = MAKE_constant ((dsql_str*) $2, CONSTANT_TIME);
}
| TIMESTAMP STRING
@ -6126,10 +6146,12 @@ void Parser::yyerror_detailed(const TEXT* error_string, int yychar, YYSTYPE&, YY
}
if (yychar < 1)
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
/* Unexpected end of command */
Arg::Gds(isc_command_end_err2) << Arg::Num(lines) <<
Arg::Num(lex.last_token - line_start + 1));
}
else
{
ERRD_post (Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<

View File

@ -691,7 +691,7 @@ dsql_nod* PASS1_node(CompiledStatement* statement, dsql_nod* input)
{
if (statement->isPsql())
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(- 206) <<
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-206) <<
Arg::Gds(isc_dsql_subselect_err));
}
@ -1858,10 +1858,12 @@ dsql_nod* PASS1_statement(CompiledStatement* statement, dsql_nod* input)
case nod_breakleave:
if (!statement->req_loop_level)
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
// Token unknown
Arg::Gds(isc_token_err) <<
Arg::Gds(isc_random) << Arg::Str("BREAK/LEAVE"));
}
input->nod_arg[e_breakleave_label] = pass1_label(statement, input);
return input;
@ -1943,28 +1945,34 @@ dsql_nod* PASS1_statement(CompiledStatement* statement, dsql_nod* input)
case nod_user_savepoint:
if (statement->req_flags & REQ_block) // blocks, procedures and triggers
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
// Token unknown
Arg::Gds(isc_token_err) <<
Arg::Gds(isc_random) << Arg::Str("SAVEPOINT"));
}
statement->req_type = REQ_SAVEPOINT;
return input;
case nod_release_savepoint:
if (statement->req_flags & REQ_block) // blocks, procedures and triggers
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
// Token unknown
Arg::Gds(isc_token_err) <<
Arg::Gds(isc_random) << Arg::Str("RELEASE"));
}
statement->req_type = REQ_SAVEPOINT;
return input;
case nod_undo_savepoint:
if (statement->req_flags & REQ_block) // blocks, procedures and triggers
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
// Token unknown
Arg::Gds(isc_token_err) <<
Arg::Gds(isc_random) << Arg::Str("ROLLBACK"));
}
statement->req_type = REQ_SAVEPOINT;
return input;
@ -4404,7 +4412,7 @@ static dsql_nod* pass1_join_is_recursive(CompiledStatement* statement, dsql_nod*
if (leftRecursive && join_type != nod_join_inner) {
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
// Recursive member of CTE can''t be member of an outer join
// Recursive member of CTE can't be member of an outer join
Arg::Gds(isc_dsql_cte_outer_join));
}
@ -9369,7 +9377,7 @@ static dsql_nod* pass1_update_or_insert(CompiledStatement* statement, dsql_nod*
++match_count;
dsql_nod*& expr = insert->nod_arg[e_sto_statement]->nod_arg[
field_ptr - fields->nod_arg]->nod_arg[0];
field_ptr - fields->nod_arg]->nod_arg[0];
dsql_nod* var = pass1_hidden_variable(statement, expr);
if (var)
@ -9470,7 +9478,7 @@ static dsql_nod* pass1_update_or_insert(CompiledStatement* statement, dsql_nod*
if_nod->nod_arg[e_if_condition] = eql;
if_nod->nod_arg[e_if_true] = insert;
// build the UPDATE / IF nodes
// build the temporary vars / UPDATE / IF nodes
dsql_nod* list = MAKE_node(nod_list, 3);
list->nod_arg[0] = MAKE_list(varStack);
list->nod_arg[0]->nod_flags |= NOD_SIMPLE_LIST;
@ -10293,8 +10301,7 @@ static bool set_parameter_type(CompiledStatement* statement, dsql_nod* in_node,
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) <<
//Arg::Gds(isc_dsql_datatype_err)
Arg::Gds(isc_imp_exc)
//Arg::Gds(isc_field_name) << Arg::Str(parameter->par_name)
);
//Arg::Gds(isc_field_name) << Arg::Str(parameter->par_name));
}
parameter->par_desc.dsc_length += sizeof(USHORT);