|
BLOB фильтр и UDF для Firebird 3.0 (64) - где найти спецификацию?
|
|||
---|---|---|---|
#18+
Мимопроходящийв некоторых серверах из большой тройки такой API действительно есть. но издержки и затраты зачастую не стоят того чтоб заморачиваться. Нет, я противник и этого. WildSeryИли не писать аппсервер для доступа к этим файлам. http-сервер вполне для этого сгодится любой. А парсить уже на клиенте можно, опять же. WildSeryЧтобы не раздавать права доступа для клиентов Если от прав юзеров база зависит доступ к этим файлам - тогда да. Тут уж писать придется. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 15:19 |
|
BLOB фильтр и UDF для Firebird 3.0 (64) - где найти спецификацию?
|
|||
---|---|---|---|
#18+
Господа, спасибо всем за активное обсуждение моей набольшой задачи. Даже удивлен. Особое спасибо тем, что кто предоставил конкретные документы и даже код, а также тем, кто внимательно посмотрел именно на мои вопросы и предположения. kdvблоб-фильтр получает на входе только блоб, и на выход выдает тоже только блоб Как это можно выяснить, не отвлекая гуру от важных дел, а из документации? Если вы заметили, первый мой вопрос был такой: shalamyansky1) Каков интерфейс функции, реализующей BLOB фильтр? "Руководство" дает лишь объявление со стороны SQL Код: sql 1. 2. 3.
из которого совершенно непонятно (мне, по-крайней мере), что же должна ожидать реализующая функция 'function_name', что и в каком виде она получит на входе, и что и в каком виде должна отдать. Некоторые нюансы задачи, которые заинтересовали публику: 2) Размеры передаваемых "файлов" > 32K, поэтому от типа BLOB, похоже, мне не уйти, даже если буду передавать их посредством "обычной" UDF. Кстати, почему было не использовать беззнаковые числа для размера строки? 64K все-таки поболе, чем 32K, аж в два раза, во многих случаях эти дополнительные килобайты облегчили бы жизнь. 3)ZIP'ы разложены по папкам файловой системы, каждый ZIP включает в себя множество XML, а каждый XML содержит множество конечных документов. Один запрос по неким идентификаторам должен возвращать один документ. Решение через виртуальный блоб мне казалось красивым, когда не только клиент, но и код на сервере абстрагированы от конкретного механизма доступа к текстам, но я понял, понял, лучше туда не влезать. А вообще подход к фильтрам получается интересным: у нас есть замечательная возможность, сообщает "Руководство", вот вам и оператор для неё, но пользоваться ей не надо, это сложно и опасно, и вообще ей никто не пользуется. Лучше не трогайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2018, 17:30 |
|
BLOB фильтр и UDF для Firebird 3.0 (64) - где найти спецификацию?
|
|||
---|---|---|---|
#18+
shalamyansky, там написано только то, что относится к SQL/PSQL. Как делать эти самые фильтры в этом руководстве не описано, да и не должно быть. Ибо UDF/UDR и фильтры это отдельная очень большая тема. авторBLOB фильтр — объект базы данных, являющийся, по сути, специальным видом внешних функций с единственным назначением: получение объекта BLOB одного формата и преобразования его в объект BLOB другого формата. Форматы объектов BLOB задаются с помощью подтипов BLOB. вроде как из этого текста понятно что вход это блоб и выход это блоб. shalamyanskyКстати, почему было не использовать беззнаковые числа для размера строки? 64K все-таки поболе, чем 32K, аж в два раза, во многих случаях эти дополнительные килобайты облегчили бы жизнь. там много причин. Для начала у нас сама запись ограничена 64K байтами. Ну и посмотри определение VARCHAR на уровне сообщений. Там много что на это завязано, и увеличить это не так уж легко. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2018, 17:44 |
|
BLOB фильтр и UDF для Firebird 3.0 (64) - где найти спецификацию?
|
|||
---|---|---|---|
#18+
shalamyanskyКак это можно выяснить, не отвлекая гуру от важных дел, а из документации? Внезапно: открыть для себя документацию: 21547549 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2018, 17:45 |
|
BLOB фильтр и UDF для Firebird 3.0 (64) - где найти спецификацию?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Дим, там по большому счёту не написано ровно ничего,пару фраз из которых конечно можно понять что вход и выход BLOB, но не более того. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2018, 17:48 |
|
BLOB фильтр и UDF для Firebird 3.0 (64) - где найти спецификацию?
|
|||
---|---|---|---|
#18+
Симонов Денистам по большому счёту не написано ровно ничего,пару фраз из которых конечно можно понять что вход и выход BLOB, но не более того. Там далее ссылки ещё на два мануала в которых сказано про интерфейс функции и ещё пара фраз. Ну а по этим данным найти в исходниках сервера примеры его встроенных фильтров - дело техники. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2018, 17:54 |
|
BLOB фильтр и UDF для Firebird 3.0 (64) - где найти спецификацию?
|
|||
---|---|---|---|
#18+
shalamyanskyКак это можно выяснить, не отвлекая гуру от важных дел, а из документации? пример api9f.* плюс исходники. в исходниках есть фильтр, который преобразует blr в текст. shalamyanskyчто же должна ожидать реализующая функция 'function_name' преобразовывать один тип блоба в другой. На входе блоб, на выходе блоб. См. пример api9f. shalamyanskyКстати, почему было не использовать беззнаковые числа для размера строки? это куда и про что вообще? про лимит строки в 32к байт? Ответ - "так получилось". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2018, 18:00 |
|
BLOB фильтр и UDF для Firebird 3.0 (64) - где найти спецификацию?
|
|||
---|---|---|---|
#18+
Интересное кино. У меня работает Firebird 3.0.2, есть на руках "Руководство" по работе именно с этой версией этого продукта, а вы отсылаете меня к руководствам другого продукта, хоть и близкого, да еще непонятно каких версий. Ну, посмотрел. По поводу БЛОБ-фильтров там сказано ровно то же, что и в руководстве по Firebird: Код: sql 1. 2. 3.
Даже если принимает только BLOB, и отдает только BLOB, как я уже узнал, все равно остаются вариации: это два разных in- и out- параметра, или один параметр in-out? Скорее всего, конечно, разные, но вдруг? Dimitry SibiryakovНу а по этим данным найти в исходниках сервера примеры его встроенных фильтров - дело техники. Вы это серьезно предлагаете? А чтобы использовать Windows API, идти в исходники kernel32? Или за неимением оных, дизассемблировать? kdvСм. пример api9f. Вот это спасибо! Собственно, это и есть прямой ответ на мой вопрос. Теперь буду и туда смотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2018, 18:20 |
|
BLOB фильтр и UDF для Firebird 3.0 (64) - где найти спецификацию?
|
|||
---|---|---|---|
#18+
shalamyanskyВы это серьезно предлагаете? А чтобы использовать Windows API, идти в исходники kernel32? Или за неимением оных, дизассемблировать? Серьёзно ли я предлагаю примеры кода смотреть в коде? Да, чёрт побери, я серьёзен как пуля в голове. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2018, 18:45 |
|
BLOB фильтр и UDF для Firebird 3.0 (64) - где найти спецификацию?
|
|||
---|---|---|---|
#18+
shalamyanskyэто два разных in- и out- параметра, или один параметр in-out? 1. у Firebird нет in-out параметров 2. в декларации фильтра ДВА параметра. Откуда "один"? Лопни мои глаза? shalamyanskyИли за неимением оных, дизассемблировать? гм. я вот С/C++ терпеть не могу, и писать на нем не умею, но исходники-то могу читать. И исходники Firebird никто не прятал. Да, очень трудно запускать поиск по файлам строки "filter", правда? Кроме того, раз пресловутые фильтры уже есть в коде, и они работают, то почему-бы их код не посмотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2018, 19:53 |
|
BLOB фильтр и UDF для Firebird 3.0 (64) - где найти спецификацию?
|
|||
---|---|---|---|
#18+
shalamyansky, дополню. из INPUT_TYPE 1 OUTPUT_TYPE -99 видно, что передаются, собственно, не сами хэндлы блобов или структуры, а просто их подтипы. И никакого in-out тут и близко нет. Особенно, если преобразовывать одно содержимое блоба в другое содержимое. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2018, 19:56 |
|
|
start [/forum/topic.php?fid=40&gotonew=1&tid=1561048]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
132ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 315ms |
total: | 545ms |
0 / 0 |