Re: Stored procedures and "pseudo" fields
Re: Stored procedures and "pseudo" fields
От:
Christoph Haller <ch@rodos.fzk.de>
Дата:
Lars Erik Thorsplass wrote: > On Tue, 20 Jul 2004 09:45:06 -0600, Scott Marlowe wrote: > > > Kinda like this: > > > > > > SELECT *, acl_check( objects.obid, ) AS mode FROM objects > > > WHERE mode > 0; > > > > Here's the problem. In order to do the select, the query first needs to > > run the where clause. I.e.: > > > > select a as test from table where a > 50; > > > > works, but > > > > select a as test from table where test > 50; > > > > fails. The reason is that when the where clause fires first, there IS > > no test yet, as it hasn't been materialized. what you need to do is: > > > > select custom_function(a,b) from table where custom_function(a,b) > 0; > > > > > > Thanks for clearing that up. I just hoped there was some magic I could > sprinkle on my query to get away from the extra overhead of running > the procedure twice :) > > Best regards.. > > L.E.Thorsplass > Pretty late, I know, but just for the record, AFAICS there is this magic as SELECT * FROM ( SELECT *, acl_check( objects.obid, ) AS mode FROM objects ) AS foo WHERE mode > 0; Regards, Christoph
Re: [GENERAL] Stored procedures and "pseudo" fields..
От:
Lars Erik Thorsplass <thorsplass@gmail.com>
Дата:
On Tue, 20 Jul 2004 09:45:06 -0600, Scott Marlowe wrote: > > Kinda like this: > > > > SELECT *, acl_check( objects.obid, ) AS mode FROM objects > > WHERE mode > 0; > > Here's the problem. In order to do the select, the query first needs to > run the where clause. I.e.: > > select a as test from table where a > 50; > > works, but > > select a as test from table where test > 50; > > fails. The reason is that when the where clause fires first, there IS > no test yet, as it hasn't been materialized. what you need to do is: > > select custom_function(a,b) from table where custom_function(a,b) > 0; > > Thanks for clearing that up. I just hoped there was some magic I could sprinkle on my query to get away from the extra overhead of running the procedure twice :) Best regards.. L.E.Thorsplass