Типы таблиц CONNECT - OEM: Реализация во внешней библиотеке
Хотя CONNECT предоставляет богатый набор типов таблиц, для некоторых приложений может потребоваться доступ к данным, организованным способом, который не поддерживается существующими внешними оболочками данных (FDW). Для таких случаев CONNECT предоставляет интерфейс, позволяющий разработчикам реализовать необходимую оболочку таблицы на C++ и использовать её как часть стандартного списка типов таблиц CONNECT. CONNECT может использовать эти дополнительные обработчики при наличии соответствующего внешнего модуля (dll или shared lib).
Для создания такой таблицы с помощью существующего обработчика используйте оператор Create Table, как показано ниже.
create table xtab (column definitions) engine=CONNECT table_type=OEM module='libname' subtype='MYTYPE' [standard table options] Option_list='Myopt=foo';
Параметр module указывает имя DLL или shared библиотеки, реализующей OEM-оболочку для типа таблицы. Эта библиотека должна находиться в каталоге плагинов, как и все остальные плагины или UDF.
Эта библиотека должна экспортировать функцию GetMYTYPE. Параметр subtype позволяет CONNECT получить имя экспортированной функции и использовать новый тип таблицы. Другие параметры интерпретируются типом OEM и также могут быть указаны в параметре option_list.
Определения столбцов могут быть не указаны, только если внешняя оболочка способна вернуть эту информацию. Для этого она должна экспортировать функцию ColMYTYPE, возвращающую эти определения в формате, приемлемом для функции обнаружения CONNECT.
Какие и как параметры должны быть указаны, а также способ определения столбцов могут отличаться в зависимости от используемого типа OEM и должны быть задокументированы реализаторами типа OEM.
Пример таблицы OEM
Таблица OEM REST, описанная в Добавление функциональности REST как библиотеки, вызываемой таблицей OEM, позволяет использовать таблицы типа REST с бинарными дистрибутивами MariaDB, содержащими, но не активирующими тип таблицы REST.
Конечно, для работы необходимо, чтобы dll или аналогичная библиотека, экспортирующая функции GetREST и colREST, находилась в каталоге плагинов.
Некоторые доступные в настоящее время модули и подтипы таблиц OEM
| Модуль | Подтип | Описание |
|---|---|---|
| libhello | HELLO | Пример OEM-оболочки, отображающей в таблице одну строку «Hello world» |
| mongo | MONGO | Позволяет использовать таблицы, основанные на коллекциях MongoDB. |
| Tabfic | FIC | Обрабатывает файлы в формате Windev HyperFile. |
| Tabofx | OFC | Обрабатывает файлы Open Financial Connectivity. |
| Tabofx | QIF | Обрабатывает файлы Quicken Interchange Format. |
| Cirpack | CRPK | Обрабатывает CDR из Cirpack UTP. |
| Tabplg | PLG | Доступ к таблицам из СУБД PlugDB. |
Как реализовать обработчик OEM не входит в сферу данного документа.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/connect-table-types-oem/