Re: Registring a C function in PostgreSQL

Поиск
Список
Период
Сортировка
От Miguel González
Тема Re: Registring a C function in PostgreSQL
Дата
Msg-id 002701c140f7$9d75d710$1301a8c0@uimagen
обсуждение исходный текст
Ответ на Re: Registring a C function in PostgreSQL  (Haller Christoph <ch@rodos.fzk.de>)
Ответы Re: Registring a C function in PostgreSQL II  (Haller Christoph <ch@rodos.fzk.de>)
Список pgsql-sql
Many thanks for your answers. The thing that in the Bruce´s book doesnt
explain how to compile this kind of functions, anyway I found how to compile
it.
Now, I am still having problems. I want to create a function to send an
email. I pass to the function two arguments: the email to send, and the text
to send.
First, I tried with pointers to char. It worked when I just create a
function called "sendemail()" with no arguments and set inside the text and
the email arguments.
When I read some more documentation about how to use strings in PostgreSQL,
I discovered that I have to use the text type in my C program I just try it
but
although it worked before, now I doesnt work.
This is what I have tried:

#include <stdio.h>#include "postgres.h"
int sendemail(text *email,text *message){
    char string_tosend [300];
    sprintf(string_tosend,"echo \"%s\" >/tmp/mailtmp.txt
\n",VARDATA(message));
    system(string_tosend);
   sprintf(string_tosend,"mail -s \"message from PostgreSQL\" %s
</tmp/mailtmp.txt \n",VARDATA(message));
    system(string_tosend);
    system("rm /tmp/mailtmp.txt");
    return 0;

}

and then in the back-end of PostgreSQL and I declared
CREATE FUNCTION sendemail(text,text)RETURNS int4AS '/home/postgres/libpginvuimail.so'LANGUAGE 'c';
and then SELECT sendemail('postgres','test from backend');
and it didnt work. What am I doing wrong?
I have being testing and I guess is something to do with the text data type
and how to use it within a C program.
Many thanks in advance
Miguel







----- Original Message -----
From: "Haller Christoph" <ch@rodos.fzk.de>
To: "Miguel González" <iafmgc@unileon.es>
Cc: <pgsql-sql@postgresql.org>
Sent: Wednesday, September 19, 2001 12:24 PM
Subject: Re: [SQL] Registring a C function in PostgreSQL


> Did you use the compiler option for generating
> position independent code (PIC) for use in building
> shared libraries.
> Did you use the linker option for creating
> a shared library - I think you did, the file
> suffix .so looks that way.
> I did it several times successfully using commands
> like
> CREATE FUNCTION byteatostr(bytea) RETURNS text
>  AS './byteatostr.sl' LANGUAGE 'c';
> and it worked.
> Maybe you should add some more information about
> what you did in detail.
> Regards, Christoph
>



В списке pgsql-sql по дате отправления:

Предыдущее
От: rdear
Дата:
Сообщение: PL/PGSQL Regexe
Следующее
От: "ericnielsen@pop.ne.mediaone.net"
Дата:
Сообщение: Implicit v Explicit joins...