From: | "omar neyra" <xomarx69(at)gmail(dot)com> |
---|---|
To: | "Diego Gil" <listas(at)adminsa(dot)com> |
Cc: | javier(dot)castro(at)enfoque-si(dot)com, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Funcion recursiva |
Date: | 2007-10-25 20:36:59 |
Message-ID: | 21b99cb00710251336l6c1c69abv7b4ebfb39c6162c6@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola a todos, a mi parecer no creo que utilizar una función recursiva sea la
mejor opción, recuerden que este tipo de funciones almacenan una copia en la
pila de la memoria cada ves que es llamada y esto puede provocar un quiebre
en memoria (en el peor de los casos, que es el que se debe medir siempre que
diseñamos algun algoritmo),
Para este caso pienso que es mejor implementar un ciclo simple, algo como
muestro a continuación;
CREATE OR REPLACE FUNCTION ruta(raiz INTEGER) RETURNS "varchar" AS
$BODY$
declare
ruta varchar := '';
descripcionreturn varchar := '';
begin
LOOP
select id_padre, descripcion from la_tabla where idraiz = raiz;
raiz := 'el id_padre que retorna el select anterior';
ruta := ruta || 'la descripcion obtenida en la consulta anterior';
if raiz = 0 then
return ruta; (o EXIT??)
END IF;
END LOOP;
END;
$BODY$
LANGUAGE 'plpgsql';
como se dieron cuenta, este algoritmo no es valido ya que faltan algunos
pasos, lo que sucede es que recien estoy aprendiendo a usar postgres y aun
no se como solucionar la parte de recuperar los campos obtenidos en la
consulta, este algoritmo solo recupera un registro por cada consulta y no el
set completo de registros como sucederia con cada llamada recursiva
Creo que faltaria solucionar lo de la recuperacion instantanea de los campo
y si se me algo, bueno, lo arreglamos!!
--
OMAR NEYRA RODRÍGUEZ
Desarrollo y Soporte
CENTRO DE INFORMÁTICA Y COMPUTACIÓN
(Informatics and Computing Center)
UNIVERSIDAD DE LA SERENA
Tel/Phone (56 51) 282971
Celular: (56 9) 88770234
email: omneyra(at)userena(dot)cl
www.userena.cl
From | Date | Subject | |
---|---|---|---|
Next Message | Esteban Osorio | 2007-10-25 20:45:11 | [pgsql-es-ayuda] Migración desde 8.1.4 a 8.2.5 |
Previous Message | MIGUEL CANCHAS | 2007-10-25 20:17:34 | RE: Instalar en Servidor y en Cliente |