×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

3.15.4. Расширяемость

3.15.4.1. Поддержка встраивания для расширений
3.15.4.2. Сменные поставщики JIT

3.15.4.1. Поддержка встраивания для расширений #

Реализация JIT в Digital Q.DataBase может встраивать тела функций типов C и internal, а также операторов, основанных на таких функциях. Чтобы сделать это для функций в расширениях, определения этих функций должны быть доступны. При использовании PGXS для сборки расширения на сервере, скомпилированном с поддержкой JIT на LLVM, соответствующие файлы будут собраны и установлены автоматически.

Соответствующие файлы должны быть установлены в $pkglibdir/bitcode/$extension/, а их сводка — в $pkglibdir/bitcode/$extension.index.bc, где $pkglibdir — каталог, возвращаемый командой pg_config --pkglibdir, а $extension — базовое имя общей библиотеки расширения.

Примечание

Для функций, встроенных в сам Digital Q.DataBase, биткод устанавливается в $pkglibdir/bitcode/postgres.

3.15.4.2. Сменные поставщики JIT #

Digital Q.DataBase предоставляет реализацию JIT на основе LLVM. Интерфейс к поставщику JIT является сменным, и поставщика можно изменить без перекомпиляции (хотя в настоящее время процесс сборки предоставляет данные для встраивания только для LLVM). Активный поставщик выбирается с помощью параметра jit_provider.

3.15.4.2.1. Интерфейс поставщика JIT #

Поставщик JIT загружается путём динамической загрузки указанной общей библиотеки. Для поиска библиотеки используется обычный путь поиска библиотек. Чтобы предоставить необходимые обратные вызовы поставщика JIT и указать, что библиотека действительно является поставщиком JIT, она должна предоставлять функцию на C с именем _PG_jit_provider_init. Этой функции передаётся структура, которую необходимо заполнить указателями на функции обратного вызова для отдельных действий:

struct JitProviderCallbacks
{
    JitProviderResetAfterErrorCB reset_after_error;
    JitProviderReleaseContextCB release_context;
    JitProviderCompileExprCB compile_expr;
};

extern void _PG_jit_provider_init(JitProviderCallbacks *cb);

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению