расширение для postgresql
Надо написать расширение для postgresql на Ubuntu, которое обеспечит прозрачное шифрование данных (TDE). Возникла идея добавить свои модули в исходники и/или похимичить с ними в отдельности, а потом всё собрать. Действовал по инструкции для просто сборки из исходников https://eax.me/postgresql-build/. Среди флагов скрипта configure ./configure --help обнаружил следующее:
и
Вопрос: это те флаги, которыми стоит воспользоваться, и, если да, в каком виде должны быть файлы расширения и где они должны лежать?
Ответы (1 шт):
Сначала вам необходимо выяснить, можете ли вы реализовать задуманное силами расширения вообще либо вам необходимо менять основной код базы несовместимым способом - и это тогда уже будет патч, но не extension.
Для этого собственно выяснить, что именно вам нужно менять в поведении базы, предоставляет ли база необходимую гибкость в этих местах. В PostgreSQL расширение может сделать довольно многое, но не всё.
Если возможностей extension достаточно
Вы не трогаете исходный код postgresql, как и вовсе не обязаны собирать базу из исходников. Вам понадобятся заголовочные файлы и утилита pg_config из комплекта поставки базы.
В любом месте где угодно вы описываете свой Makefile с вызовом pg_config. Последний обеспечит для вас все необходимые пути. Затем пишете код, прочую обвязку расширения (посмотрите для примеров на contrib/ из дерева исходного кода базы), затем простым make и make install ваше расширение устанавливаются в подходящее место и становится доступно для использования базой в create extension и релевантных настройках.
Если расширения недостаточно
То вы работаете напрямую в дереве исходного кода postgresql, изменяя непосредственно код базы. Далее собираете как будто ничего в коде не меняли, обычным ./configure и далее по списку.
Касательно реализации - смотря что именно вы хотите сделать. Начните отсюда, это наиболее свежая дискуссия о реализации TDE в postgresql. Скорей всего возможностей расширения будет недостаточно.