I need to create my very first function. I'm using 8.0.2 and I need a function that I can call (from my client app) with an unknown number of criteria for a select query. The function will then return the results of the query. In my mind, it would go something like what I've outlined below. I realize that there are syntax mistakes etc, but this is just an example: CREATE TABLE mytable ( a INTEGER UNIQUE PRIMARY KEY, b VARCHAR(100) NOT NULL, ); CREATE FUNCTION myfunc(criteria) RETURNS ???? AS $$ BEGIN BEGIN FOREACH crit IN criteria critsql := "b = 'crit' OR " NEXT crit END; PERFORM "SELECT a, b FROM mytable WHERE (" critsql ");" END; $$ LANGUAGE plpgsql; Select * from myfunc(1, 2, 3, 4) would then equate to SELECT a, b FROM mytable WHERE (b = '1' OR b = '2' OR b = '3' OR b = '4'); Select * from myfunc(9, 21) would equate to SELECT a, b FROM mytable WHERE (b = '9' OR b = '21'); My question is how do I do that? I've looked through the docs and can't find what I'm looking for. I'm assuming this is possible because it's a relatively simple task. Mike ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your message can get through to the mailing list cleanly