AlexeyChe
Зарегистрирован: 04.12.2009 Сообщения: 1
|
Добавлено: Пт Дек 04 2009 09:52 Заголовок сообщения: Postgres, C-function, dll, падает сервер |
|
|
Всем доброго времени суток
Нужна помощь, казалось бы, типичная функция из хелп по Постргес, а работать, мало того что не хочет, так сервер роняет. Код:
Код: |
#include "postgres.h"
#include "fmgr.h"
#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif
PG_FUNCTION_INFO_V1(add_one);
__declspec (dllexport) Datum add_one(PG_FUNCTION_ARGS)
{
int32 arg = PG_GETARG_INT32(0);
PG_RETURN_INT32(arg + 1);
}
PG_FUNCTION_INFO_V1(fo);
__declspec (dllexport) Datum fo(PG_FUNCTION_ARGS)
{
float8 arg = PG_GETARG_FLOAT8(0);
PG_RETURN_FLOAT8(arg+1);
}
|
Код: |
CREATE OR REPLACE FUNCTION "public"."add_one_f"(double precision) RETURN double precision AS
'dll_c.dll','fo'
LANGUAGE C STRICT
|
select add_one_f(99.0)
Код: |
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
|
WinXP, server Postgres - 8.3, binaries для линковки - 8.3.5, линковка в Dev-cpp под mingw
PS. Функция add_one(integer), то есть тоже самое для int работает нормально
PPS. Собирал где только мог - MSYS, Cygwin, симптомы те же |
|