From: | "Arthur Ward" <award(at)dominionsciences(dot)com> |
---|---|
To: | "Edmund Dengler" <edmundd(at)eSentire(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: SET within a function? |
Date: | 2003-10-14 16:43:59 |
Message-ID: | 1732.192.168.0.101.1066149839.squirrel@192.168.0.2 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
> Is the rewrite only for the literal 'X = NULL' or will it do a test
> against a value such as 'X = OLD.X' (and rewrite is OLD.X is NULL)?
>
> Is there any way to match NULLS to each other (as I am looking for a
> literal row, not using NULL as the UNKNOWN). I suppose I could put in a
> dummy value for the 'Not a valid value', but it seems to be quite awkward
> when I really do want the NULL.
I ended up writing an "equivalent" function for the project I'm working
on. It goes like this in plpgsql:
IF $1 IS NULL THEN
RETURN $2 IS NULL;
ELSIF $2 IS NULL THEN
-- We already know $1 is not null.
RETURN FALSE;
ELSE
-- Both args are not null.
RETURN $1 = $2;
END IF;
That's the basic idea. I put a wrapper around this to generate a copy of
it for all the data types used in my database.
From | Date | Subject | |
---|---|---|---|
Next Message | Edmund Dengler | 2003-10-14 16:48:17 | Re: SET within a function? |
Previous Message | Richard Huxton | 2003-10-14 16:15:36 | Re: Excute comnands OS from plpgsql |