Re: Función recursiva

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Alfonso Lopez Gemar <alfonso_lg(at)hotmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Función recursiva
Date: 2011-02-14 14:42:18
Message-ID: 1297694491-sup-7694@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Excerpts from Alfonso Lopez Gemar's message of lun feb 14 07:44:40 -0300 2011:
>
> Hola a todos;
> Tengo un problema, quiero hacer una función recursiva en porsgreSQL utilizando el lenguaje plpythonu
> El tema en cuestión es que no se como hacer para uqe las funciones que tengo declaradas en mi esquema public sean accesibles/existan para la función
> Esta es mi función:
> CREATE OR REPLACE FUNCTION recursiva(numero integer DEFAULT 0) RETURNS integer AS$BODY$if numero>0: aux = numero -1 plan_id = plpy.prepare("SELECT recursiva( $1 )", [ "integer"]) rv2 = plpy.execute(plan_id, [aux])
> return rv2[0][0]+numeroelse: return numero$BODY$ LANGUAGE plpythonu VOLATILE COST 100;ALTER FUNCTION recursiva(integer) OWNER TO pg_user;
>
> Al intentar hacer el "SELECT recursiva..." no va y tampoco funciona si la fincion es así:
> CREATE OR REPLACE FUNCTION recursiva(numero integer DEFAULT 0) RETURNS integer AS$BODY$if numero>0: return numero + recursiva(numero-1)else: return numero$BODY$ LANGUAGE plpythonu VOLATILE COST 100;ALTER FUNCTION recursiva(integer) OWNER TO pg_user;
>
> Esta ultima forma es primera que se me ocurrio.

La primera forma "debería" funcionar. ¿Qué error te dio?

La segunda forma no funciona, no te gastes intentándolo.

--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2011-02-14 17:03:52 Re: consulta de fechas da error
Previous Message Rodriguez Fernando 2011-02-14 14:11:40 Re: Postgres y Versiones.