subqueries and qualification of table names - Mailing list pgsql-general

From Kevin Murphy
Subject subqueries and qualification of table names
Date
Msg-id 379ef67eff2f6cb6ab6e302d457b945a@genome.chop.edu
Whole thread Raw
Responses Re: subqueries and qualification of table names  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
I have a query which didn't work properly until I fully qualified
columns used in a a subquery with the appropriate table names.  The
reason is that both tables have a column named 'chromosome' used in the
subquery.  In the following query, PG treats the phrase "and chromosome
= chromosome" as "and genetic.chromosome = genetic.chromosome".  I.e.
it treats:

---
# select chromosome, layer, rank,
         (select refsnp_id
                 from genetic
                 where extended_frame = True
                         and chromosome = chromosome
                         and gl_left = rank)
from framework
where name = 'D3S3610'
         and layer = 'GL';
---

as:
---
select chromosome, layer, rank,
         (select refsnp_id
                 from genetic
                 where genetic.extended_frame = True
                         and genetic.chromosome = genetic.chromosome
                         and genetic.gl_left = framework.rank)
from framework
where name = 'D3S3610'
         and layer = 'GL';
---

Is that the appropriate SQL behavior?  Personally I don't care; I'm
just curious.

Thanks,
Kevin Murphy


pgsql-general by date:

Previous
From: Werner Bohl
Date:
Subject: Re: plruby on Windows
Next
From: Alvaro Herrera
Date:
Subject: Re: blob storage