Re: creating a function returning FALSE on NULL input ?

From: David Johnston <polobo(at)yahoo(dot)com>
To: Yvon Thoraval <yvon(dot)thoraval(at)gmail(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: creating a function returning FALSE on NULL input ?
Date: 2012-11-07 06:01:38
Message-ID: 746857F9-3C13-454A-AD73-CD9AEE4DFA45@yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Nov 7, 2012, at 0:33, Yvon Thoraval <yvon(dot)thoraval(at)gmail(dot)com> wrote:

> I'd like to create a function :
> returning true if the length of the text arg is greater than 0 ;
> false otherwise ;
>
> and also returning false when arg is NULL, then i wrote :
>
> CREATE FUNCTION has_infos(text) RETURNS boolean AS 'select character_length($1) > 0;' LANGUAGE SQL IMMUTABLE RETURNS FALSE ON NULL INPUT;
>
> where i get the error :
>
> ERROR: syntax error at or near "FALSE"
> LINE 1: ...r_length($1) > 0;' LANGUAGE SQL IMMUTABLE RETURNS FALSE ON N...
>
> with "RETURNS NULL on NULL INPUT", that's OK.
>
> --
> Yvon
>

You have to allow for null input and deal with it in the function body. Usually via a CASE structure.

David J.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Craig Ringer 2012-11-07 06:05:06 Re: Tuning / performance questions
Previous Message Yelai, Ramkumar IN BLR STS 2012-11-07 05:58:10 Re: Parallel Insert and Delete operation