pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Robins Tharakan <tharakan@gmail.com>
To: johnf <jfabiani@yolo.com>
Cc: pgsql-sql@postgresql.org
Subject: Re: postgresql function not accepting null values inselect statement
Date: Mon, 25 Feb 2008 12:33:08 +0530
Message-ID: <36af4bed0802242303w3bca871cgab3d004a1414faed@mail.gmail.com> (raw)
In-Reply-To: <200802220830.56917.jfabiani@yolo.com>
References: <001501c8752d$391c8e50$ab55aaf0$@com>
	<001a01c87534$84eea280$8ecbe780$@com>
	<47BEA582.A3DD.0030.0@indicator.be>
	<200802220830.56917.jfabiani@yolo.com>

http://www.postgresql.org/docs/current/static/functions-comparison.html

This document states this:
Lets assume:
A = NULL
B = 10
C = NULL

SELECT 1 WHERE A = B returns no rows
SELECT 1 WHERE A = C returns no rows (even though both A and C are NULL)
SELECT 1 WHERE A IS NOT DISTINCT FROM C returns 1 row.

essentially the third SQL statement works because it is equivalent to this:

SELECT 1 WHERE (A IS NULL AND C IS NULL) OR (A = C)

*Robins*


On Fri, Feb 22, 2008 at 10:00 PM, johnf <jfabiani@yolo.com> wrote:

> On Friday 22 February 2008 01:35:47 am Bart Degryse wrote:
> > Can you try this...
> >
> > CREATE OR REPLACE FUNCTION getfunctionaries(p_statecd integer)
> >   RETURNS SETOF t_functionaries AS
> > $BODY$
> > DECLARE
> >   rec t_functionaries%ROWTYPE;
> > BEGIN
> >   FOR rec IN (
> >     SELECT f.functionaryid, f.category, f.description
> >     FROM functionaries f
> >     WHERE f.statecd IS NOT DISTINCT FROM p_statecd)
> >   LOOP
> >     return next rec;
> >   END LOOP;
> >   return;
> > END;
> > $BODY$
> > LANGUAGE 'plpgsql' VOLATILE;
> >
> a newbie question.  Could you explain why yours works?  I don't understand
> how
> it works if p_statecd = NULL
>
>
> --
> John Fabiani
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
>

view thread (11+ messages)  latest in thread

Message-ID: <36af4bed0802242303w3bca871cgab3d004a1414faed@mail.gmail.com>
Permalink:  ../36af4bed0802242303w3bca871cgab3d004a1414faed@mail.gmail.com/
Also on:    postgresql.org/message-id/36af4bed0802242303w3bca871cgab3d004a1414faed@mail.gmail.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: tharakan@gmail.com, jfabiani@yolo.com
  Subject: Re: postgresql function not accepting null values inselect statement
  In-Reply-To: <36af4bed0802242303w3bca871cgab3d004a1414faed@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox