From: | Alban Hertroys <alban(at)magproductions(dot)nl> |
---|---|
To: | andrew <andrew(dot)ylzhou(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: filtering after join |
Date: | 2006-01-26 10:05:15 |
Message-ID: | 43D89EDB.3000405@magproductions.nl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
andrew wrote:
> I want to use a UDF to filter tuples t that are generated after a join.
> More specifially, I have a UDF foo(record), which computes a value for
> a given tuple. I can do the filtering before the join. e.g.:
>
> select * from A, B where foo(A)<2 and A.a=B.b;
I suppose you mean where foo(A.a) < 2?
I've never seen SP's being applied to entire tables, especially inside a
where clause.
Next to that, the planner can't do much in this case (according to a
thread here from this week), so you're likely to be stuck with
sequential scans.
> But I want to apply foo() to the tuples generated by the join
> operation. How can I do that?
You should be able to use something like (rewrote your join as well):
select foo(some_column) from A left join b on (A.a=B.b) where A.a < 2;
If that's not what you mean to do, could you be a bit clearer as to what
you're trying to achieve?
--
Alban Hertroys
alban(at)magproductions(dot)nl
magproductions b.v.
T: ++31(0)534346874
F: ++31(0)534346876
M:
I: www.magproductions.nl
A: Postbus 416
7500 AK Enschede
//Showing your Vision to the World//
From | Date | Subject | |
---|---|---|---|
Next Message | Paul Mackay | 2006-01-26 10:06:24 | Physical column size |
Previous Message | Robert Korteweg | 2006-01-26 10:03:26 | Re: Missing database entry in pg_database |