Using null or not null in function arguments

From: Igor Katson <descentspb(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Using null or not null in function arguments
Date: 2009-01-23 11:16:34
Message-ID: 4979A712.3070509@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I have a row search function, smth like

CREATE OR REPLACE FUNCTION user_func.search_users
(i_city_id int, i_edu_id int, i_first_name text, i_last_name text,
limit_ int, offset_ int) RETURNS SETOF user.user AS $$
..... SELECT * FROM user WHERE
city_id = i_city_id
...
$$ language plpgsql;

How do I write a function without complex logic, which will do:
a) If the input argument is NULL, then the corresponding select
statement will change from

column = arg
to
column IS NULL

maybe there is some built-in function for that?

b) If the input argument is NULL, then the corresponding select
statement will be removed, so if it was not written.

I think, this is a common problem.

Thanks in advance and regards,
Igor Katson.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Howard Cole 2009-01-23 12:08:02 How to convert ByteA to Large Objects
Previous Message Schwaighofer Clemens 2009-01-23 10:21:23 Re: how to avoid that a postgres session eats up all the memory