From: | "Mauro A(dot) Morales M(dot)" <mmorales(at)opencorp(dot)cl> |
---|---|
To: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
Cc: | Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>, Marcos Saldivar <baron(dot)rojo(dot)cuerdas(dot)de(dot)acero(at)gmail(dot)com>, Postgresql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Plan de ejecución de una consulta con OR |
Date: | 2008-07-15 03:40:32 |
Message-ID: | 1216093232.3162.7.camel@sherlock |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El lun, 14-07-2008 a las 10:51 -0400, Alvaro Herrera escribió:
> Sebastián Villalba escribió:
> > Hola Marcos.
> >
> > On Mon, 14 Jul 2008 10:22:07 -0400, Marcos Saldivar wrote
> > > Estimados tengo la siguiente duda, para una consulta como esta:
> > >
> > > select * from foo where foo.permiso = 'todos' or 1950 in (select
> > > miembro from miembros_grupos)
> > >
> > > Al cumplirse la condición "foo.permiso = 'todos'" es valido pensar
> > > que la sub consulta jamas se ejecutara ????
> >
> > Muy válido. Saludos!
>
> No necesariamente ... me parece que SQL no garantiza que las condiciones
> se evalúan de izquierda a derecha ...
>
> Supongo que es posible que por una cosa de rendimiento la condición que
> involucra la constante sea ejecutada antes que la otra, y que el motor
> se tome la libertad de eliminar el subselect. Por otro lado supongo que
> si el subselect incluyera cosas como una funcion volátil, no podría hacerlo.
Pero acaso el explain no entrega pistas acerca de como resuelve la
consulta ?.
Si no recuerdo mal, las SQL se leen de abajo hacia arriba y de izquierda
a derecha.
Saludos,
-- Mauro
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2008-07-15 04:34:32 | Re: Plan de ejecución de una consulta con OR |
Previous Message | Hugo César | 2008-07-15 01:40:34 | Re: Hora del Servidor |