From: <asf...@us...> - 2010-10-17 14:32:10
|
Revision: 51721 http://firebird.svn.sourceforge.net/firebird/?rev=51721&view=rev Author: asfernandes Date: 2010-10-17 14:32:04 +0000 (Sun, 17 Oct 2010) Log Message: ----------- Fixed CORE-3180 - ALTER VIEW with not matched columns in declaration and selection crashs the server Modified Paths: -------------- firebird/branches/B2_5_Release/src/dsql/ddl.cpp Modified: firebird/branches/B2_5_Release/src/dsql/ddl.cpp =================================================================== --- firebird/branches/B2_5_Release/src/dsql/ddl.cpp 2010-10-17 14:22:53 UTC (rev 51720) +++ firebird/branches/B2_5_Release/src/dsql/ddl.cpp 2010-10-17 14:32:04 UTC (rev 51721) @@ -3881,7 +3881,14 @@ const dsql_str* field_name = (dsql_str*) (*ptr)->nod_arg[1]; field_string = field_name->str_data; } - ptr++; + else + { + // Generate an error when going out of this loop. + ++ptr; + break; + } + + ++ptr; } // if not an expression, point to the proper base relation field, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <asf...@us...> - 2010-11-09 17:28:01
|
Revision: 51885 http://firebird.svn.sourceforge.net/firebird/?rev=51885&view=rev Author: asfernandes Date: 2010-11-09 17:27:55 +0000 (Tue, 09 Nov 2010) Log Message: ----------- Fixed CORE-3222 - View with "WITH CHECK OPTION" doesn't like TRIM function in WHERE Modified Paths: -------------- firebird/branches/B2_5_Release/src/dsql/ddl.cpp Modified: firebird/branches/B2_5_Release/src/dsql/ddl.cpp =================================================================== --- firebird/branches/B2_5_Release/src/dsql/ddl.cpp 2010-11-09 15:03:33 UTC (rev 51884) +++ firebird/branches/B2_5_Release/src/dsql/ddl.cpp 2010-11-09 17:27:55 UTC (rev 51885) @@ -6332,6 +6332,8 @@ for (dsql_nod** ptr = input->nod_arg; ptr < endo; ++ptr) { + if (!*ptr) + continue; if ((*ptr)->nod_type == nod_select_expr) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hv...@us...> - 2011-06-26 22:27:15
|
Revision: 53244 http://firebird.svn.sourceforge.net/firebird/?rev=53244&view=rev Author: hvlad Date: 2011-06-26 22:27:07 +0000 (Sun, 26 Jun 2011) Log Message: ----------- Fixed bug CORE-3509 : Alter procedure allows to add the parameter with the same name. Modified Paths: -------------- firebird/branches/B2_5_Release/src/dsql/ddl.cpp Modified: firebird/branches/B2_5_Release/src/dsql/ddl.cpp =================================================================== --- firebird/branches/B2_5_Release/src/dsql/ddl.cpp 2011-06-26 18:48:00 UTC (rev 53243) +++ firebird/branches/B2_5_Release/src/dsql/ddl.cpp 2011-06-26 22:27:07 UTC (rev 53244) @@ -2376,7 +2376,15 @@ const dsql_fld* field = (dsql_fld*) parameter->nod_arg[e_dfl_field]; if (field->fld_type_of_name.isEmpty() && field->fld_source.isEmpty()) + { + if (newInputs.exist(field->fld_name)) + { + ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-637) << + Arg::Gds(isc_dsql_duplicate_spec) << Arg::Str(field->fld_name)); + } + newInputs.add(field->fld_name); + } } } @@ -2390,7 +2398,15 @@ const dsql_fld* field = (dsql_fld*) parameter->nod_arg[e_dfl_field]; if (field->fld_type_of_name.isEmpty() && field->fld_source.isEmpty()) + { + if (newInputs.exist(field->fld_name) || newOutputs.exist(field->fld_name)) + { + ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-637) << + Arg::Gds(isc_dsql_duplicate_spec) << Arg::Str(field->fld_name)); + } + newOutputs.add(field->fld_name); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <asf...@us...> - 2013-09-06 15:58:04
|
Revision: 58586 http://sourceforge.net/p/firebird/code/58586 Author: asfernandes Date: 2013-09-06 15:58:01 +0000 (Fri, 06 Sep 2013) Log Message: ----------- Fixed CORE-4210 - Preserve comments for output parameters after altering procedures. Modified Paths: -------------- firebird/branches/B2_5_Release/src/dsql/ddl.cpp Modified: firebird/branches/B2_5_Release/src/dsql/ddl.cpp =================================================================== --- firebird/branches/B2_5_Release/src/dsql/ddl.cpp 2013-09-06 13:09:07 UTC (rev 58585) +++ firebird/branches/B2_5_Release/src/dsql/ddl.cpp 2013-09-06 15:58:01 UTC (rev 58586) @@ -2564,6 +2564,21 @@ statement->append_number(isc_dyn_prm_number, position); statement->append_number(isc_dyn_prm_type, 1); + + if (op == nod_mod_procedure && !modifyOutputs.exist(field->fld_name)) + { + UCharBuffer description; + + METD_get_procedure_parameter(statement, procedure_name->str_data, field->fld_name, + description); + + if (description.hasData()) + { + statement->append_string(isc_dyn_description, + (const char*) description.begin(), description.getCount()); + } + } + DDL_resolve_intl_type(statement, field, reinterpret_cast<const dsql_str*>(parameter->nod_arg[e_dfl_collate])); put_field(statement, field, false); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hv...@us...> - 2013-09-22 11:59:05
|
Revision: 58652 http://sourceforge.net/p/firebird/code/58652 Author: hvlad Date: 2013-09-22 11:59:02 +0000 (Sun, 22 Sep 2013) Log Message: ----------- Fixed bug CORE-4233 : In PSQL modules with declared cursors engine could assign value to the wrong variable Modified Paths: -------------- firebird/branches/B2_5_Release/src/dsql/ddl.cpp Modified: firebird/branches/B2_5_Release/src/dsql/ddl.cpp =================================================================== --- firebird/branches/B2_5_Release/src/dsql/ddl.cpp 2013-09-22 00:30:52 UTC (rev 58651) +++ firebird/branches/B2_5_Release/src/dsql/ddl.cpp 2013-09-22 11:59:02 UTC (rev 58652) @@ -6318,8 +6318,14 @@ } else if (parameter->nod_type == nod_cursor) { + fb_assert(locals == statement->req_hidden_vars_number); + fb_assert(statement->req_hidden_vars.isEmpty()); + PASS1_statement(statement, parameter); + GEN_hidden_variables(statement, false); GEN_statement(statement, parameter); + + locals = statement->req_hidden_vars_number; } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <asf...@us...> - 2013-12-22 14:55:33
|
Revision: 58967 http://sourceforge.net/p/firebird/code/58967 Author: asfernandes Date: 2013-12-22 14:55:29 +0000 (Sun, 22 Dec 2013) Log Message: ----------- Fixed CORE-4299 - "Inappropriate self-reference of column" when using "with check option" with extract(...). Modified Paths: -------------- firebird/branches/B2_5_Release/src/dsql/ddl.cpp Modified: firebird/branches/B2_5_Release/src/dsql/ddl.cpp =================================================================== --- firebird/branches/B2_5_Release/src/dsql/ddl.cpp 2013-12-22 01:51:15 UTC (rev 58966) +++ firebird/branches/B2_5_Release/src/dsql/ddl.cpp 2013-12-22 14:55:29 UTC (rev 58967) @@ -188,7 +188,7 @@ static void put_msg_field(CompiledStatement*, const dsql_fld*); static dsql_nod* replace_field_names(dsql_nod*, dsql_nod*, dsql_nod*, bool, const char*); static void reset_context_stack(CompiledStatement*); -static void save_field(CompiledStatement*, const SCHAR*); +static void save_field(CompiledStatement*, const SCHAR*, const dsql_fld*); static void save_relation(CompiledStatement*, const dsql_str*); static void set_statistics(CompiledStatement*); static void stuff_default_blr(CompiledStatement*, const UCHAR*, USHORT); @@ -3998,7 +3998,7 @@ } if (field_string) - save_field(statement, field_string); + save_field(statement, field_string, field); statement->append_number(isc_dyn_fld_position, position); statement->append_uchar(isc_dyn_end); @@ -6420,7 +6420,6 @@ (*ptr)->nod_arg[e_fln_name] = (*replace)->nod_arg[e_fln_name]; } (*ptr)->nod_arg[e_fln_context] = (dsql_nod*) MAKE_cstring(context_name); - } if (null_them && replace_fields && !strcmp(field_name->str_data, replace_name->str_data)) { @@ -6467,7 +6466,7 @@ } -static void save_field(CompiledStatement* statement, const TEXT* field_name) +static void save_field(CompiledStatement* statement, const TEXT* field_name, const dsql_fld* fld) { /************************************** * @@ -6495,6 +6494,17 @@ field->fld_name = field_name; field->fld_next = relation->rel_fields; relation->rel_fields = field; + + if (fld) + { + field->fld_dtype = fld->fld_dtype; + field->fld_scale = fld->fld_scale; + field->fld_sub_type = fld->fld_sub_type; + field->fld_length = fld->fld_length; + field->fld_flags = fld->fld_flags; + field->fld_character_set_id = fld->fld_character_set_id; + field->fld_collation_id = fld->fld_collation_id; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |