SQLсервер в Linux -самостоятельное освоение пакета

       

Функции на языке С



Листинг 7.48. Функции на языке С

/* 1s_zero.c

* Простейшие проверочные функции */

int is_zero(int);

int is_zero_two(int. int):

int is_zero(int incoming) {

/* Вернуть true, если аргумент равен 0. */

if (incoming == 0) return 1;

else return 0: }

int is_zero_two(int left, int right) {

/* Вернуть true, если хотя бы один из аргументов равен 0. */

if (left —0 || right == 0) return 1:

else return 0; }

ВНИМАНИЕ

В этот простейший пример не были включены заголовочные файлы PostgreSQL. В данном случае они не нужны из-за очевидного соответствия между типами данных С и SQL. Более реальные примеры с использованием внутреннего интерфейса API PostgreSQL и структур данных находятся во вложенном каталоге contrib исходного каталога PostgreSQL.

В листинге 7.49 файл is_zero.c компилируется с ключом -shared, а полученный общий модуль создается в файле is_zero.so. Путь к файлу передается в определении функции в команде CREATE FUNCTION; атрибут LANGUAGE сообщает, что функция написана на языке С.



Содержание раздела