Re: Estructura JoinType

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Estructura JoinType
Date: 2007-01-08 01:38:18
Message-ID: 20070108013818.GA7810@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola! Estoy de vuelta de una ausencia extendida.

LDC - Carmen Brando escribió:

> A nivel de implementacion veo que se utiliza la estructura
> JoinType definida en nodes.h para distinguir el tipo de
> join cuando se indica explicitamente en la clausula FROM:
> OUTER, INNER y NATURAL. En caso de un join indicado en la
> clausula WHERE (t1.a=t2.b AND t2.b=t3.c ...) no aplica alguno de
> sus valores? JOIN_INNER, JOIN_LEFT, JOIN_FULL, JOIN_RIGHT. En
> el manueal dicen "The join condition of an inner join can be
> written either in the WHERE clause or in the JOIN clause", pero a nivel
> de implementacion un join expresado en la clausua WHERE toma
> el mismo curso que un INNER JOIN indicado en la clausua FROM?

Observa que cuando pones "FROM foo, bar" lo que se hace es poner ambas
tablas en la lista de RangeTables. En cambio cuando haces "FROM foo
JOIN bar ON ( ... )", lo que se hace es poner un solo RangeTable el cual
es un nodo de tipo Join.

Por otro lado, el optimizador puede cambiar las dos RangeTables en un
nodo Join (dependiendo de from_collapse_limit), pero no tengo idea si
esto queda realmente expresado en el arbol de la consulta. (Sugerencia:
activa debug_print_parse, debug_print_rewritten, debug_print_plan y
examina los planes a ver si encuentras diferencias entre los planes
cuando cambias los valores de from_collapse_limit).

Ojo que puede haber un error en cualquier cosa de lo que dije arriba asi
que verificalo con cuidado :-)

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-01-08 01:41:06 Re: Existencia de columna en tabla
Previous Message Guido Barosio 2007-01-08 01:10:11 Re: Existencia de columna en tabla