Pavel wrote:
Привет,
Отдаю себе отчет что это оффтоп...
В наследство достался java проект, настраиваю его локально.
Разработчик, который работал над ним до меня, написал custom функцию
для постгре на С.
Подскажите плз. как ее скомпилировать в .so файл чтобы объявить ее потом:
CREATE FUNCTION upper_utf8(text) RETURNS text
AS '/foobar/upper_utf8.so', 'upper_utf8'
LANGUAGE c;
Я не знаю си, и, соответсвенно, не очень хорошо представляю себе как
это всё скомпилить и какие библиотеки нужно будет для этого заимпротить.
Вот кусок функции... похоже что #include это то же что и import, но не
знаю где взять postgres.h либу и положить ее на путь.
#include <postgres.h>
text *upper_utf8(text *t);
text *upper_utf8(text *t)
{
text *new_t = (text *) palloc(VARSIZE(t));
int i;
VARATT_SIZEP(new_t) = VARSIZE(t);
.... и т.д.
Буду признателен за любую помощь... Сслыку по теме (для чайников) -
было бы в самый раз.
Спасибо!
Павел.
"#" - означает директиву для препроцессора. #include <some.h> означает,
что препроцессор должен взять из стандартного каталога include/ файл
some.h и вклеить его содержимое по месту вызова директивы. Стандартный
каталог с .h файлами находится в /usr/include.
Файлы заголовков (те самые .h) нужны для того, чтоб компилятор знал
какие функции и структуры из библиотек (.o, .so и т.п.) можно
использовать и каким именно образом. Содержаться заголовки в пакетах
вида *dev
А вот насчет ссылок затрудняюсь. Попробуй погуглить "Дж. Либерти" или
"Дэйтел" (эти граждане написали крайне толковые книги по С и С++).
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]