"ERROR: Argument of WHERE must not be a set function"?

From: Drew Wilson <amw(at)speakeasy(dot)net>
To: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: "ERROR: Argument of WHERE must not be a set function"?
Date: 2003-04-16 23:45:25
Message-ID: 7EC23222-7065-11D7-AB01-00039342B2CE@speakeasy.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I want to use a function to generate a list of OIDs to be used in a
subselect.

However, I can't figure out what to return from my function that will
properly work in a WHERE clause.

I tried:
CREATE FUNCTION myTest() RETURNS SETOF oid AS 'SELECT id FROM foo;'
LANGUAGE SQL;

But when I try:
SELECT * FROM foo WHERE id in in (myTest());

I get this error message:
"ERROR: Argument of WHERE must not be a set function"

How can I use a function to generate my subselect? (I want to cal my
function just once, and avoid calling it once per row.)

Thanks,

Drew

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Drew Wilson 2003-04-16 23:58:37 Re: "ERROR: Argument of WHERE must not be a set function"?
Previous Message dewins murillo 2003-04-16 23:32:52 New Control Panel for Postgresql 7.1.3