Subject | update parameter list of a stored procedure |
---|---|
Author | mbanaouas |
Post date | 2009-11-03T11:37:18Z |
Hi,
Environment:
Server Version: WI-V2.1.3.18185 Firebird 2.1
Server Implementation: Firebird/x86-64/Windows NT
Service Version: 2
It seems like Firebird accept procedure proc_a parameter list
modification while the old paramer list is already used by another
procedure proc_b, introducing a mismatch parameters when calling proc_b.
Can one tell me if it's a bug or a normal behaviour ? thanks.
this is a simple testcase:
/*
TEST-MAJ-PROC.sql
TestCase of proc params modification
*/
commit work;
set autodll off;
set term ^ ;
create or alter procedure SP_TEST_A(ID integer)
returns
(
TEXTE varchar(80)
)
as
begin
TEXTE = ID;
suspend;
end
^
set term ; ^
commit work;
set autoddl on;
set term ^ ;
create or alter procedure SP_TEST_B
returns
(
TEXTE varchar(80)
)
as
begin
select texte from sp_test_a(1) into :TEXTE;
suspend;
end
^
set term ; ^
commit work;
set autoddl on;
set term ^ ;
create or alter procedure SP_TEST_A(ID integer, ope varchar(20))
returns
(
TEXTE varchar(80)
)
as
begin
TEXTE = ID;
suspend;
end
^
set term ; ^
commit work;
set autoddl on;
select * from sp_test_b;
commit;
Environment:
Server Version: WI-V2.1.3.18185 Firebird 2.1
Server Implementation: Firebird/x86-64/Windows NT
Service Version: 2
It seems like Firebird accept procedure proc_a parameter list
modification while the old paramer list is already used by another
procedure proc_b, introducing a mismatch parameters when calling proc_b.
Can one tell me if it's a bug or a normal behaviour ? thanks.
this is a simple testcase:
/*
TEST-MAJ-PROC.sql
TestCase of proc params modification
*/
commit work;
set autodll off;
set term ^ ;
create or alter procedure SP_TEST_A(ID integer)
returns
(
TEXTE varchar(80)
)
as
begin
TEXTE = ID;
suspend;
end
^
set term ; ^
commit work;
set autoddl on;
set term ^ ;
create or alter procedure SP_TEST_B
returns
(
TEXTE varchar(80)
)
as
begin
select texte from sp_test_a(1) into :TEXTE;
suspend;
end
^
set term ; ^
commit work;
set autoddl on;
set term ^ ;
create or alter procedure SP_TEST_A(ID integer, ope varchar(20))
returns
(
TEXTE varchar(80)
)
as
begin
TEXTE = ID;
suspend;
end
^
set term ; ^
commit work;
set autoddl on;
select * from sp_test_b;
commit;