From: | Anthony <asotolongo(at)uci(dot)cu> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | ayuda con función en C |
Date: | 2011-06-27 04:13:17 |
Message-ID: | 4E08035D.7010301@uci.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Saludos a todos en la lista. Tengo una función en C programada que
calcula un factorial (al menos eso creo) con la técnica de recursividad,
es algo puramente de prueba para aprender sobre como programar en C para
postgreSQL. Lo hice mirando el manual de PostgreSQL y tiene el código
siguiente.
el archivo se llama otrasfunciones.c
#include "postgres.h"
#include "fmgr.h"
#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif
PG_FUNCTION_INFO_V1(facto);
Datum
facto(PG_FUNCTION_ARGS)
{
int32 n = PG_GETARG_INT32(0);
int32 result;
if (n==0) // Caso base
result = 1;
//Caso general
else // Caso general
result = n*facto(n-1);
PG_RETURN_INT32(result);
}
lo compile y me dice esto:
/otrasfunciones.c: In function âfactoâ:
otrasfunciones.c:18: warning: passing argument 1 of âfactoâ makes
pointer from integer without a cast
otrasfunciones.c:9: note: expected âFunctionCallInfoâ but argument is of
type âintâ/
Luego la creo dentro de PostgreSQL
/postgres=# create FUNCTION facto (integer) RETURNS integer as
'/usr/local/pgsql/lib/otrasfunciones.so' ,'facto' LANGUAGE c STRICT;
CREATE FUNCTION/
luego la ejecuto para ver si funciona y sale todo ok
postgres=# select facto(0);
facto
--------
1
(1 row)
el problema viene cuando pongo otro valor que no sea 0
por ejemplo
/postgres=# select facto(2);/
me sale lo siguiente :-(
/server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Failed./
Será que no puede ejecutar para postgres algoritmos recursivos desde
funciones implementadas en C y agregadas luego o debe hacerse usando una
técnica especial y lo estoy haciendo mal?
Saludos
From | Date | Subject | |
---|---|---|---|
Next Message | Anthony | 2011-06-27 04:14:45 | ayuda con función en C |
Previous Message | Lazaro Rubén García Martinez | 2011-06-27 01:13:20 | RE: Diferencia entre Nombre de Tablas entre comillas y sin comillas |