On Monday 18 June 2007 19:27:35 Martijn van Oosterhout wrote: > On Mon, Jun 18, 2007 at 04:10:41PM +0200, Vincenzo Romano wrote: > > Hello everyone. > > > > In order to build some dynamic queries (EXECUTE under PL/PgSQL) > > I'm taking in consideration to use the INTERSECT operator in > > order to split a WHERE-condition in a static one and a dynamic > > one to be built at runtime. > > The INTERSECT will almost certainly be slower, basically because > all the joins will have to be processed twice. Also, the results > won't be quite the same, especially with respect to duplicate > records and NULLs. > > Have a nice day, I think you are right, but I could rely on the cache to be affective and thus relieving the performance loss. But now I have one more thing. The following command will fail with a syntax error: SELECT * FROM (SELECT 1 ) a INTERSECT (SELECT 2 ) b; Because of the second (harmless) table alias. In my mind it should work. Or not? -- Vincenzo Romano -- Maybe Computer will never become as intelligent as Humans. For sure they won't ever become so stupid. [VR-1988]