Re: Sobre la Union

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Rodolfo Vegas <vegasster(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Sobre la Union
Date: 2009-04-06 18:41:17
Message-ID: 20090406184117.GH4525@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Rodolfo Vegas escribió:
> bueno dias a todos, tengo un problema con la ejecución de la unión, la
> misma se ejecuta en nodeUnique, especificamente execUnique, la cuestión es
> la siguiente, me di cuenta que en la union el guarda cada tupla en una tabla
> como temporal el va guardando cada una de las tuplas descartando los
> repetidos, cuando se ejecuta la union el no se trae la tabla resultante sino
> tupla a tupla por lo que me doy cuenta y si yo quiero modificar una tupla
> para calcular el grado de membresia para la union porque como dije
> anteriormente el guarda el resultado en una estructura temporal a parte y lo
> que se trae el execUnique es una copia de la misma, uds sabran algo al
> respecto si existe una funcion de reemplazar una tupla o algo asi,

Estás equivocado :-(

Creo que el problema es que no estás metiéndote suficientemente profundo
en el agua. El Union (tal como Intersect y Except) se implementa por
partes: primero el parser, luego el optimizador, finalmente el ejecutor.

En el optimizador, el UNION que viene desde el usuario se puede
convertir en distintas cosas, una de las cuales es un nodo Unique (a
menos que sea un UNION ALL). Luego el ejecutor hace pasar ese nodo
Unique por execUnique, el cual devuelve tuplas. Esas tuplas pueden
venir de esa "tabla como temporal" que tu la llamas (un tuplestore, o
quizás un tuplesort?) o bien desde otro tipo de nodo.

Por la descripción de tu problema, creo que el modelamiento de UNION que
has hecho está mal. Quizás deberías meterle otro nodo al plan, y
modificar el ejecutor para que sepa qué hacer con él. Pero no entiendo
bien de qué se trata tu problema así que no creo que pueda ofrecerte más
ayuda (y tampoco soy experto en el optimizador/ejecutor).

--
Alvaro Herrera http://planet.postgresql.org/
"No necesitamos banderas
No reconocemos fronteras" (Jorge González)

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Emanuel Calvo Franco 2009-04-06 18:44:52 Re: Contribucion
Previous Message Alvaro Herrera 2009-04-06 18:26:14 Re: Contribucion