How about no column at all? I see Oracle do a lot of these. Maybe for
referential integrity checks?
test1=> select 'WORKS!' as "Result" from geo
test1-> where EXISTS (select null from geo where city = 'Portland' and state
= 'OR');
Result
------
WORKS!
(1 row)
-----Original Message-----
From: Bruce Momjian [mailto:pgman@candle.pha.pa.us]
Sent: Thursday, January 13, 2000 5:07 AM
To: Julian Scarfe
Cc: PostgreSQL-general
Subject: Re: [GENERAL] Simulating an outer join
> Bruce Momjian wrote:
>
> > I am just writing the EXISTS section from my book. I don't think it
> > matters what fields are returned from an EXISTS subquery. If I am
> > wrong, someone please let me know.
>
> Celko also writes (in his chapter on EXISTS in "SQL for Smarties"):
>
> "In general the SELECT * option should perform better than the actual
column.
> It lets the query optimizer decide which column to use. If a column has
an
> index on it, then simply seeing a pointer to the index is enough to
determine
> that something exists."
>
> Obviously you're in a much better position than me to judge whether that's
the
> case in pgsql! But it might be worth a test.
In psql, I think * would generate all the columns, then throw it away,
while a specific column would only carry around that column in the
subquery result. so a single column is better.
--
Bruce Momjian | http://www.op.net/~candle
maillist@candle.pha.pa.us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
************