Re: Registring a C function in PostgreSQL II

From: Miguel González <iafmgc(at)unileon(dot)es>
To:
Cc: "PostgreSQL SQL" <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Registring a C function in PostgreSQL II
Date: 2001-09-19 18:23:50
Message-ID: 001501c14138$3af36c10$1301a8c0@uimagen
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Thank you very much for your help.

After being testing the program first from my prompt (it worked fine) and
then within PostgreSQL, I realized that I was using aliases for the system
users emails (for instance I used postgres instead of
postgres(at)myhost(dot)mydomain(dot)com

once that i tried the "complete" email address it worked fine. Is it
possible to use aliases from within PostgreSQL (outside works fine, which
is
something weird that I dont understand).

Many thanks

Miguel

> ----- Original Message -----
> From: "Haller Christoph" <ch(at)rodos(dot)fzk(dot)de>
> To: "Miguel González" <iafmgc(at)unileon(dot)es>
> Cc: <pgsql-sql(at)postgresql(dot)org>
> Sent: Wednesday, September 19, 2001 4:41 PM
> Subject: Re: [SQL] Registring a C function in PostgreSQL II
>
>
> > I'm working on a HP-UX system, so some of the
> > following has to be adapted, but in principle
> > it's the same on every system and it works.
> > First piece of code is a standalone program,
> > which you should always write and test before
> > you start creating C functions inside PostgreSQL.
> > Second piece is your sendemail function slightly
> > modified to make it run on my system.
> > When I do a
> > select sendemail('ch', 'was soll das?') ;
> > I'm receiving an email from postgres.
> > Regards, Christoph
> >
> > First piece:
> >
> > /*
> > cc -Aa -g -I/opt/pgsql/include/ -c sendemtest.c
> > cc sendemail.o sendemtest.o -o sendemtest
> > */
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include <string.h>
> > #include "postgres.h"
> >
> > void main() {
> > char buf[1024];
> > int ln;
> > text *res;
> > text *to;
> > int sendemail(text *email,text *message);
> >
> > strcpy(buf, "Kissenminister Aussinger \n");
> > ln = strlen(buf);
> >
> > res = (text *) malloc(VARHDRSZ + ln);
> > memset(res, 0, VARHDRSZ + ln);
> > res->vl_len = VARHDRSZ + ln;
> > memcpy(res->vl_dat, buf, (int) ln);
> >
> > strcpy(buf, "ch");
> > ln = strlen(buf);
> >
> > to = (text *) malloc(VARHDRSZ + ln);
> > memset(to, 0, VARHDRSZ + ln);
> > to->vl_len = VARHDRSZ + ln;
> > memcpy(to->vl_dat, buf, (int) ln);
> >
> > sendemail(to, res);
> > }
> >
> > Second piece:
> >
> > /*
> > cc -Aa -g -I/opt/pgsql/include/ +z -c sendemail.c
> > ld -b -o sendemail.sl sendemail.o
> >
> > CREATE FUNCTION sendemail(text,text) RETURNS int4
> > AS '/fdsk2/users/ch/tools/pgsql.mydoc/sendemail.sl' LANGUAGE 'c';
> > DROP FUNCTION sendemail(text,text);
> > */
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include "postgres.h"
> >
> > int sendemail(text *email,text *message)
> > {
> > int result = 0 ;
> >
> > char string_tosend [300];
> >
> > sprintf(string_tosend,"/usr/bin/echo \"%s\"
> >/tmp/mailtmp.txt\n",VARDATA(message));
> >
> > result += system(string_tosend);
> >
> > sprintf(string_tosend,"/usr/bin/mail -dt %s </tmp/mailtmp.txt \n",
> > VARDATA(email));
> >
> > result += system(string_tosend);
> >
> > result += system("/usr/bin/rm /tmp/mailtmp.txt");
> >
> > return result;
> >
> >
> > }
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
> >
>

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Miguel González 2001-09-19 18:55:49 Creating a boolean function
Previous Message Kovacs Baldvin 2001-09-19 16:55:19 Re: Checking for table existence (fwd)