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

Responder a