Try:
#include <pgsql/postgres.h>
int plus2(int a,int b)
{
return(a+b);
}
cc -c plus2.c /* I get the object file *.o */
gcc -shared -o plus2.so plus2.o /* you need a library file */
from psql:
create function plus2(int4,int4) returns int4 as
'/var/lib/pgsql/plus2.so' language 'c'; -- assuming /var/lib/pgsql
is the location of plus2.so
-----Original Message-----
From: Carlos Peralta Ramirez [SMTP:cperalta@hera.inf.ucv.cl]
Sent: Wednesday, May 05, 1999 2:44 AM
To: pgsql-novice; pgsql-hackers; pgsql-sql; pgsql-general
Subject: [GENERAL] which guru know this ??
Primary, Sorry for my english !!!
Hi,
I ´m developing a several test database, for study. But I can´t
create
any function, every time ERROR appears.
I write a C code in a plus2.c file
#include <pgsql/postgres.h>
int4 plus2(int4 a,int4 b)
{
return(a+b);
}
main() /* For getting *.out*/
{
}
, then I compile it (I made this of two ways)
cc -c plus2.c /* I get the object file *.o */
or
cc plus2.c plus2.out /*I get the *.out file */
When I create the function on postgresql, occurs this
db=> create function plus2(int4,int4) returns int4 as
'/var/lib/pgsql/plus2.o' language 'c';
CREATE
or
db=> create function plus2(int4,int4) returns int4 as
'/var/lib/pgsql/plus2.out' language 'c';
CREATE
Wherever, when I call the function plus2 from Sql sentence ...
db=> select plus2(6,6);
ERROR: Load of file /var/lib/pgsql/plus2.o failed:
(ô@(ô@/pgsql/plus2.o: ELF file's phentsize not the expected size
or, with plus2.out
db=> select plus2(6,6);
PQexec() -- Request was sent to backend, but backend closed the
channel
before responding.
This probably means the backend terminated abnormally before or
while
processing the request.
If anybody can help me, thank !!!
PD: I don´t disturb you, if I don´t need it really.