[FB-Tracker] Created: (CORE-5504) fbudf functions make invalid blr

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[FB-Tracker] Created: (CORE-5504) fbudf functions make invalid blr

JIRA tracker@firebirdsql.org
fbudf functions make invalid blr
--------------------------------

                 Key: CORE-5504
                 URL: http://tracker.firebirdsql.org/browse/CORE-5504
             Project: Firebird Core
          Issue Type: Bug
          Components: UDF
    Affects Versions: 2.5.7
         Environment: Bug discover after update to 2.5.7.
All work fine until 2.5.5 :
the entry point module name has become case sensitive in FB2.5.7 ???
            Reporter: christophe derenne


With a fresh firebird-superserver 2.5.7 installation
create a new database
for example
/var/lib/firebird/data/test.fdb
with sqldialect 3, charset UTF-8

crate a very simple table :
create table tbtest (idtest integer not null);

Make some row (for exemple 10 rows from idtest=1 to idtest=10)

insert into tbtest (idtest)
values
(1);
insert into tbtest (idtest)
values
(2);
insert into tbtest (idtest)
values
(3);
insert into tbtest (idtest)
values
(4);
insert into tbtest (idtest)
values
(5);
insert into tbtest (idtest)
values
(6);
insert into tbtest (idtest)
values
(7);
insert into tbtest (idtest)
values
(8);
insert into tbtest (idtest)
values
(9);
insert into tbtest (idtest)
values
(10);

register a  fbudf function :
fo exemple :
declare external function ADDDAY
timestamp, int
returns timestamp
entry_point 'addday' module_name 'fbudf';

declare external function ADDDAY2
timestamp, int
returns timestamp
entry_point 'addDay' module_name 'fbudf';


Use thoses functions

select 100*a.idtest+10*b.idtest+c.idtest, addDay(cast('2001-01-01' as timestamp),100*a.idtest+10*b.idtest+c.idtest) from tbtest a
join tbtest b on 1=1 join tbtest c on 1=1;

result :
invalid request BLR at offset 91
function ADDDAY is not defined
module name or entrypoint could not be found


select 100*a.idtest+10*b.idtest+c.idtest, addDay2(cast('2001-01-01' as timestamp),100*a.idtest+10*b.idtest+c.idtest) from tbtest a
join tbtest b on 1=1 join tbtest c on 1=1;

Result ok :

But both functions is working from FB1.5 to FB2.5

It seems that
the entry point module name has become case sensitive in FB2.5.7

For old database with stored procedure or view depends on udf function, we cannot drop/create to correct the entry point 's caractere case.
Except create empty database with correct metadata and then insert data.




--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel