Re: function recursivo para obtener hijo y nietos..

Lists: pgsql-es-ayuda
From: "---$${[*Salmuz*]}$$---" <salmuz(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: function recursivo para obtener hijo y nietos..
Date: 2008-09-08 18:36:46
Message-ID: 6a6934250809081136k7b40e064ua9fb249f49c51840@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola. bueno ante todo gracias por hacerme pertenecer a esta lista, soy nuevo
en esto y estoy realizando un sistema, bueno me encontre con un problema
particular que es el siguiente, les muestro mi tabla

CREATE TABLE jerarquia_producto
(
cod_jerarquia_prod integerNOT NULL,
cod_padre_jer integer,
des_jerarquia character varying(20) NOT NULL,
)

Lo que necesito es obtener apartir de cod_jerarquia_prod sus hijos,
nieto,.....etc hasta la ultima generación, lo he realizado al contrario
para obtener sus padres y abuelos.
Es eficiente realizar funciones recursivas en postgres ?
Se podria resolver con postgres o lo tendria que hacer con programación?

Gracias ...por su tiempo.xD

--
Ate.

Carranza Alarcón, Yonatan Carlos

--{[Salmuz]}--


From: Felipe de Jesús Molina Bravo <felipe(dot)molina(at)inegi(dot)gob(dot)mx>
To: "---$${[*Salmuz*]}$$---" <salmuz(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: function recursivo para obtener hijo y nietos..
Date: 2008-09-08 19:05:57
Message-ID: 1220900757.4354.8.camel@fjmb
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Para la versión 8.4 se planea lo siguiente (no se si sea contrib) que
seguramente ayudara a problemas como el que presentas

http://wiki.postgresql.org/wiki/CTEReadme

Te comento que alguna vez hice una recursión y me fue algo mal ... y
decidi cambiar nested-set ... y me fue mucho mejor; ahora estoy probando
nested-interval que al parecer esta mejor ... estoy en pruebas!!

La sig. liga te puede ayudar

http://arxiv.org/html/cs.DB/0401014

saludos

El lun, 08-09-2008 a las 13:36 -0500, ---$${[*Salmuz*]}$$--- escribió:
> Hola. bueno ante todo gracias por hacerme pertenecer a esta lista, soy
> nuevo en esto y estoy realizando un sistema, bueno me encontre con un
> problema particular que es el siguiente, les muestro mi tabla
>
>
> CREATE TABLE jerarquia_producto
> (
> cod_jerarquia_prod integerNOT NULL,
> cod_padre_jer integer,
> des_jerarquia character varying(20) NOT NULL,
> )
>
> Lo que necesito es obtener apartir de cod_jerarquia_prod sus hijos,
> nieto,.....etc hasta la ultima generación, lo he realizado al
> contrario para obtener sus padres y abuelos.
> Es eficiente realizar funciones recursivas en postgres ?
> Se podria resolver con postgres o lo tendria que hacer con
> programación?
>
> Gracias ...por su tiempo.xD
>
> --
> Ate.
>
> Carranza Alarcón, Yonatan Carlos
>
> --{[Salmuz]}--


From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: "---$${[*Salmuz*]}$$---" <salmuz(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: function recursivo para obtener hijo y nietos..
Date: 2008-09-08 19:12:32
Message-ID: 20080908191232.GG4411@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

---$${[*Salmuz*]}$$--- escribió:

> Lo que necesito es obtener apartir de cod_jerarquia_prod sus hijos,
> nieto,.....etc hasta la ultima generación, lo he realizado al contrario
> para obtener sus padres y abuelos.
> Es eficiente realizar funciones recursivas en postgres ?
> Se podria resolver con postgres o lo tendria que hacer con programación?

Hay muchas formas de hacerlo. La mas simple es crear una funcion
PL/pgSQL que haga multiples consultas y devuelva todos los registros que
cada una de ellas retorne.

Si la jerarquia es complicada o larga y el rendimiento es importante,
podrias tratar con contrib/ltree.

--
Alvaro Herrera Valdivia, Chile Geotag: -39,815 -73,257
"We are who we choose to be", sang the goldfinch
when the sun is high (Sandman)


From: "Jaime Casanova" <jcasanov(at)systemguards(dot)com(dot)ec>
To: Felipe de Jesús Molina Bravo <felipe(dot)molina(at)inegi(dot)gob(dot)mx>
Cc: "---$${[*Salmuz*]}$$---" <salmuz(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: function recursivo para obtener hijo y nietos..
Date: 2008-09-08 21:34:57
Message-ID: 3073cc9b0809081434j5dd360ffi2e17eb09a281191d@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 9/8/08, Felipe de Jesús Molina Bravo <felipe(dot)molina(at)inegi(dot)gob(dot)mx> wrote:
> Para la versión 8.4 se planea lo siguiente (no se si sea contrib) que
> seguramente ayudara a problemas como el que presentas
>
> http://wiki.postgresql.org/wiki/CTEReadme
>

no como contrib sino como parte de postgres. pero esto estaba en
proyecto y programandose para el 8.3, asi que aun no cantemos
victoria...

--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. (593) 87171157


From: "Marcos Saldivar" <baron(dot)rojo(dot)cuerdas(dot)de(dot)acero(at)gmail(dot)com>
To: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: "---$${[*Salmuz*]}$$---" <salmuz(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: function recursivo para obtener hijo y nietos..
Date: 2008-09-08 23:52:11
Message-ID: 1c4d91ab0809081652l6764a050ke46fdeeef0d05b38@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

2008/9/8 Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>:
[...]
>
> Hay muchas formas de hacerlo. La mas simple es crear una funcion
> PL/pgSQL que haga multiples consultas y devuelva todos los registros que
> cada una de ellas retorne.
>
> Si la jerarquia es complicada o larga y el rendimiento es importante,
> podrias tratar con contrib/ltree.

¿¿¿ Los campos ltree pueden contener textos en español ??? hago unas
pruebas y me entrega el siguiente error:

directorio=> insert into categorias(path) values('Computación');
ERROR: syntax error at position 9 near "X"

Busco en san google y hasta ahora no encuentro referencias a este problema...

Saludos.-


From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Marcos Saldivar <baron(dot)rojo(dot)cuerdas(dot)de(dot)acero(at)gmail(dot)com>
Cc: "---$${[*Salmuz*]}$$---" <salmuz(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: function recursivo para obtener hijo y nietos..
Date: 2008-09-08 23:56:00
Message-ID: 20080908235600.GL4411@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Marcos Saldivar escribió:
> 2008/9/8 Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>:
> [...]
> >
> > Hay muchas formas de hacerlo. La mas simple es crear una funcion
> > PL/pgSQL que haga multiples consultas y devuelva todos los registros que
> > cada una de ellas retorne.
> >
> > Si la jerarquia es complicada o larga y el rendimiento es importante,
> > podrias tratar con contrib/ltree.
>
> ¿¿¿ Los campos ltree pueden contener textos en español ??? hago unas
> pruebas y me entrega el siguiente error:
>
> directorio=> insert into categorias(path) values('Computación');
> ERROR: syntax error at position 9 near "X"

Hmm, supongo que puedes poner un ID numérico?

--
Alvaro Herrera http://www.advogato.org/person/alvherre
Officer Krupke, what are we to do?
Gee, officer Krupke, Krup you! (West Side Story, "Gee, Officer Krupke")