Excerpts from Anthony Rafael Sotolongo Leon's message of dom mar 13 14:18:11
-0300 2011:
> Hola a todos estoy tratando de iniciarme programando en C para PostgreSQL y
> para so estoy leyendo el manual de la 9.0 seccion 35.9. C-Language Functions
> , aqui les pongo el primer programa (test.c)
>
>
> #include "fmgr.h"
> #ifdef PG_MODULE_MAGIC
> PG_MODULE_MAGIC;
> #endif
Antes que eso debe ir
#include "postgres.h"
> int suma (int a, int b)
> {
> return a+b;
> }
Esta no es la forma de declarar una función en Postgres. Necesitas usar
las macros PG_FUNCTION_ARGS, PG_GETARG_INT32, y PG_RETURN_INT32. Mira
este artículo:
http://www.postgresql-es.org/node/217
> y lo compilo de modo siguiente
> gcc -I /usr/local/include -c test.c
> Y me da los siguientes errores (es como si la fmgr.h tuviera problemas) :
Además deberías usar pg_config para indicarle las opciones de
compilación. Normalmente debería bastar con la siguiente línea:
gcc $(pg_config --cflags) $(pg_config --includedir-server) -c test.c
Pero realmente, en vez de estar compilando a mano, lo más conveniente es
crear un Makefile muy simple, como este:
MODULE_big = test
OBJS = test.o
PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)
Luego escribes "make" y compila y crea una biblioteca, y con "make
install" la instala. Es mucho más simple.
--
Álvaro Herrera <[email protected]>
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda