Hi, Steve,
sramsay@uga.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