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 [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to