You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Message "Modifying function <F> which is currently in use" when running script with AUTODDL=OFF and <F> is called from INTERNAL function declared in other unit [CORE4472]
#4792
The following script will cause appearing message "Modifying function <FN_01> which is currently in use by active user requests" in firebird.log in case when <FN_01> is called from some INTERNAL function inside another unit (procedure `sp_01` in sample beneath):
set autoddl off;
commit;
set term ^;
create or alter function fn_01() returns int -- <<<<<<<<< this function will be CALLED from another
as begin
return 1;
end
^
create or alter procedure sp_01
as
declare function fn_internal_01 returns int as -- <<< ::: NB ::: this is INTERNAL function which CALLS `fn_01`
begin
if ( fn_01() > 0 ) then return 1;
else return 0;
end
begin
end
^
set term ;^
commit;
Every run of this script (in single connect, of course) will cause adding of new message in firebird.log:
oel64 Wed Jun 25 14:26:27 2014
Modifying function FN_01 which is currently in use by active user requests
oel64 Wed Jun 25 14:26:29 2014
Modifying function FN_01 which is currently in use by active user requests
. . .
PS-1. No such message was in FB builds before 09.06.2014.
PS-2. No such message appear if function FN_01 is called from "common" (top-level) SP or function:
set autoddl off;
commit;
set term ^;
create or alter function fn_01() returns int
as begin
return 1;
end
^
create or alter function fn_02() returns int
as begin
return fn_01();
end
^
create or alter procedure sp_01
as
declare x int;
begin
x=fn_01();
end
^
set term ;^
commit;
Submitted by: @pavel-zotov
The following script will cause appearing message "Modifying function <FN_01> which is currently in use by active user requests" in firebird.log in case when <FN_01> is called from some INTERNAL function inside another unit (procedure `sp_01` in sample beneath):
set autoddl off;
commit;
set term ^;
create or alter function fn_01() returns int -- <<<<<<<<< this function will be CALLED from another
as begin
return 1;
end
^
create or alter procedure sp_01
as
declare function fn_internal_01 returns int as -- <<< ::: NB ::: this is INTERNAL function which CALLS `fn_01`
begin
if ( fn_01() > 0 ) then return 1;
else return 0;
end
begin
end
^
set term ;^
commit;
Every run of this script (in single connect, of course) will cause adding of new message in firebird.log:
oel64 Wed Jun 25 14:26:27 2014
Modifying function FN_01 which is currently in use by active user requests
oel64 Wed Jun 25 14:26:29 2014
Modifying function FN_01 which is currently in use by active user requests
. . .
PS-1. No such message was in FB builds before 09.06.2014.
PS-2. No such message appear if function FN_01 is called from "common" (top-level) SP or function:
set autoddl off;
commit;
set term ^;
create or alter function fn_01() returns int
as begin
return 1;
end
^
create or alter function fn_02() returns int
as begin
return fn_01();
end
^
create or alter procedure sp_01
as
declare x int;
begin
x=fn_01();
end
^
set term ;^
commit;
-- this works OK.
Commits: 3d44e7d FirebirdSQL/fbt-repository@b3505e8
The text was updated successfully, but these errors were encountered: