Re: [HACKERS] what standard say ...
Bruce Momjian <maillist@candle.pha.pa.us>
From: Bruce Momjian <maillist@candle.pha.pa.us>
To: vadim@sable.krasnoyarsk.su (Vadim B. Mikheev)
Cc: hackers@postgreSQL.org
Date: 1998-02-06T16:23:57Z
Lists: pgsql-hackers
> > vac=> \d test > > Table = test > +----------------------------------+----------------------------------+-------+ > | Field | Type | Length| > +----------------------------------+----------------------------------+-------+ > | x | int4 | 4 | > | y | int4 | 4 | > +----------------------------------+----------------------------------+-------+ > vac=> select count(*) from test where exists (select t1.y from test t1 where t1.y = x); > ^ > Is this correlated subquery or not ? > (Note, that I don't use x with t1. prefix here) > With current parser this works as un-correlated subquery... > Is this Ok and I have to re-write query as > > vac=> select count(*) from test t2 where exists > ^^ > (select t1.y from test t1 where t1.y = t2.x); > ^^^ > to get correlated one ? > > Vadim > > I am almost sure this is uncorrelated. If an unqualified varaiable appears in a subquery, it matches the closest table it can find. I am not sure about the standard, but logic would suggest this is the way it should work. And, of course, that is what the parser does. -- Bruce Momjian maillist@candle.pha.pa.us