Встала задача написать клиент-серверное приложение, в качестве используемой СУБД выбрал PostgreSQL в ввиду богатого функционала. Серверная часть должна выполнять функции по анализу корректности запросов к БД (данные могут изменяться по строго определённым правилам не все из которых можно описать с использованием SQL ограничений). Пока собирал материал возник вопрос, а может ли PostgreSQL передавать запросы стороннему модулю (к примеру dll) до непосредственного выполнения в самой СУБД? Тогда вся задача свелась бы к написанию этого модуля. Есть ли соответствующий API?
Есть вызов внешней команды.
Есть вызов внешней команды. Если этого недостаточно, есть подключаемые языки программирования, на которых можно написать что угодно. API для чего? Как бы функция PostgreSQL работать со своей БД, а не с чужой
Был бы благодарен за ссылку
Был бы благодарен за ссылку на материал касательно внешних команд и языков программирования. На счёт API разъясню, я вообще схему представляю примерно следующим образом: поступает запрос от пользователя, сервер postgre его парсит, но перед тем как выполнить передаёт его на обработку некой сторонней библиотеке. Или некий похожий алгоритм
Что значит "парсит, а потом
Что значит "парсит, а потом отдаёт"? Когда распарсит, то текст превратится в набор управляющих структур внутри СУБД. Кому и как PostgreSQL должен всё это отдать?
Есть некая хрень:
http://postgresql.ru.net/manual/spi.html
которуя впрочем я не представляю как использовать. Может это оно?
По поводу языков программирования. Ну вот например PL/perl:
http://postgresql.ru.net/manual/plperl.html
В этом же мануале можно и про другие языки найти
Запуск внешних команд, например, тоже через тот же PL/perl,вызвать в нём функцию system с параметром-командой
"Когда распарсит, то текст
"Когда распарсит, то текст превратится в набор управляющих структур внутри СУБД. Кому и как PostgreSQL должен всё это отдать", в общем это примерно то что и нужно, теоретически можно подключить заголовочные файлы и работать со структурами уже в dll. Ссылки посмотрю, спасибо