From: | Markus Schaber <schabi(at)logix-tt(dot)com> |
---|---|
To: | sramsay(at)uga(dot)edu |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: functions in WHERE clause |
Date: | 2006-03-27 13:32:51 |
Message-ID: | 4427E983.8050601@logix-tt.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Hi, Steve,
sramsay(at)uga(dot)edu wrote:
> SELECT * from some_table WHERE
> test_for_equality_is_syntactically_ugly;
> The WHERE clause expects the function to return a boolean value. I
> can certainly return a boolean value from a function, but here it
> seems to me that what the function really has to do is return a
> set of boolean values -- the test in the WHERE clause sometimes
> evaluates to true and sometimes evaluates to false, and that is in
> turn used to constrain the query results. But you can't return a
> set of anything (I don't think) in a WHERE clause, because it seems
> to want a singular boolean value.
And this is as it is intended. The equality test is applied row-by-row,
and for each row, it is either true or false, but not undecided.
So your query should look like
SELECT * FROM some_table WHERE your_function(column_a, column_b);
> Is it possible to do what I'm trying to do? I've written a few
> simple sql and pl/pgsql functions over the years, but I'm no expert.
Yes, it is.
HTH,
Markus
--
Markus Schaber | Logical Tracking&Tracing International AG
Dipl. Inf. | Software Development GIS
Fight against software patents in EU! www.ffii.org www.nosoftwarepatents.org
From | Date | Subject | |
---|---|---|---|
Next Message | Jim C. Nasby | 2006-03-27 13:48:31 | Re: Expressing a result set as an array (and vice versa)? |
Previous Message | John DeSoi | 2006-03-27 13:32:39 | Re: Problem using set-returning functions |