RE: Null function parameters - Mailing list pgsql-sql

From Graham Vickrage
Subject RE: Null function parameters
Date
Msg-id NDBBJABDILOPAOOMFJHOCEAPCEAA.graham@digitalplanit.com
Whole thread Raw
In response to Re: Null function parameters  (tolik@aaanet.ru (Anatoly K. Lasareff))
List pgsql-sql
Thanks Anatoly

So if I understand you correctly you can't pass more than one NULL int into
a function?

Therefore Newbe DBA type question: -
Is this a shortcoming in postgres or is it to be expected when dealing with
transactions?
If it is a shotcoming are there any plans to include it in future releases?

Regards

Graham

-----Original Message-----
From: tolik@tolikus.hq.aaanet.ru [mailto:tolik@tolikus.hq.aaanet.ru]On
Behalf Of Anatoly K. Lasareff
Sent: 23 August 2000 12:46
To: Tom Lane
Cc: Graham Vickrage; postgresql
Subject: Re: [SQL] Null function parameters


>>>>> "TL" == Tom Lane <tgl@sss.pgh.pa.us> writes:
TL> "Graham Vickrage" <graham@digitalplanit.com> writes:>> However my understanding was that if the default value is
SQLNULL then
 
any>> values passed into the function that are null would be treated as
'NULL'.
TL> Not sure what you think you meant by that, but a null is a null.  If
youTL> declared the table column as NOT NULL then Postgres is doing exactlyTL> what it should.  You may wish to code
theinsert along the lines of
 
TL> INSERT INTO table VALUES (..., COALESCE($1, suitable-default), ...)
TL> COALESCE is a handy notation for "value1 unless it's NULL, in which
caseTL> value2".
TL> regards, tom lane

But unfortunately we have no answer for primary question:

| Why if we pass to function ONLY ONE null agument all the oters    |
| argumenta in function's boby are null too?                        |
| Or: is it possible to pass null arguments into plpgsql functions? |

Example.

create function a(int, int) returns int as '
begin raise notice ''1: % 2: %'', $1, $2;
 if $1 is null then   return $2; end if;
 return $1;
end;
' language 'plpgsql';

tolik=# select a(1,2);
NOTICE:  1: 1 2: 2a
---1
(1 row)

tolik=# select a(null,2);
NOTICE:  1: <NULL> 2: <NULL>a
---

(1 row)


--
Anatoly K. Lasareff              Email:       tolik@aaanet.ru



pgsql-sql by date:

Previous
From: hlefebvre
Date:
Subject: Re: Using SETOF in plpgsql function
Next
From: Jan Wieck
Date:
Subject: Re: Using SETOF in plpgsql function