Есть сервер firebird 1.5.2 под FreeBSD. Поставлен в /usr/local/firebird .
Пытаюсь сделать там UDF. Кладу файл liblist_udf.so в /usr/local/firebird/UDF:
$ ls -l /usr/local/firebird | grep UDF
drwxr-xr-x 2 firebird firebird 512 Jun 7 23:19 UDF
$ ls -l /usr/local/firebird/UDF/liblist_udf.so
-r-xr-xr-x 1 firebird firebird 750271 May 10 22:05 /usr/local/firebird/UDF/liblist_udf.so
$ nm /usr/local/firebird/UDF/liblist_udf.so | grep -i createiblist
0007b744 T CREATEIBLIST
0007afa8 T CreateIbList
$ nm /usr/local/firebird/UDF/liblist_udf.so | grep -i " U "
U main
/* вот этот undefined мне не очень нравится. это нормально или нет? */
декларирую UDF:
Код: Выделить всё
DECLARE EXTERNAL FUNCTION CREATELIST
INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'CREATEIBLIST' MODULE_NAME 'list_udf'
в IBExpert't пытаюсь создать процедуру, использующую UDF:
Код: Выделить всё
SET TERM ^ ;
CREATE PROCEDURE TEST_PROC
AS
DECLARE VARIABLE OV1 INTEGER;
begin
ov1 = CREATELIST(0);
end
^
SET TERM ; ^
По Commit'у говорит:
Invalid token.
invalid request BLR at offset 26.
function CREATELIST is not defined.
module name or entry point could not be found.
:(
(наверное это не из-за того, что сервер не видит liblist_udf.so, так как при отсутствии этого файла он говорит "Access to UDF library "liblist_udf.so" is denied by server administrator")
конфиг (практически по умолчанию):
RootDirectory = /usr/local/firebird
UdfAccess = Restrict UDF
В каком месте мне лыжи смазать, чтоб поехали?