Ошибка регистрации UDF во FreeBSD 5.3

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Сергей
Сообщения: 13
Зарегистрирован: 10 ноя 2004, 10:35

Ошибка регистрации UDF во FreeBSD 5.3

Сообщение Сергей » 28 сен 2005, 17:59

Интересное поведение Firebird во FreeBSD.

Сервер взят отсюда:
http://prdownloads.sourceforge.net/fire ... z?download

Невозможно нормально зарегистрировать UDF в базе данных.
Информация о UDF получается искаженной.

Например, следующий скрипт:

Код: Выделить всё

CONNECT ‘base.gdb’ USER ‘sysdba’ PASSWORD ‘masterkey’;

DECLARE EXTERNAL FUNCTION bloblen
    BLOB
    RETURNS INTEGER BY VALUE
    ENTRY_POINT 'IB_UDF_bloblen' MODULE_NAME 'sp_ib_udf';

DECLARE EXTERNAL FUNCTION getblobhashparam
    BLOB, CSTRING(255)
    RETURNS CSTRING(255) FREE_IT
    ENTRY_POINT 'IB_UDF_getblobhashparam' MODULE_NAME 'sp_ib_udf';
В базе данных получаю:

Код: Выделить всё

DECLARE EXTERNAL FUNCTION BLOBLEN
    INTEGER,
    BLOB,
    BLOB
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IB_UDF_bloblen' MODULE_NAME 'sp_ib_udf'

DECLARE EXTERNAL FUNCTION GETBLOBHASHPARAM
    CSTRING(255),
    CSTRING(255),
    CSTRING(255),
    CSTRING(255),
    BLOB,
    BLOB,
    BLOB,
    BLOB,
    BLOB,
    CSTRING(255),
    CSTRING(255),
    CSTRING(255),
    CSTRING(255),
    CSTRING(255)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'IB_UDF_getblobhashparam' MODULE_NAME 'sp_ib_udf'
Причем при повторном пересоздании количество входных параметров изменяется.

Пробовал на двух разных серверах (оба под FreeBSD) – поведение одинаково.

Под Linux и Windows все нормально.
Соответственно http://prdownloads.sourceforge.net/fire ... 686.tar.gz
и http://prdownloads.sourceforge.net/fire ... _win32.zip.

Этому есть какое-то разумное объяснение?

Ответить