| From: | tolik(at)aaanet(dot)ru (Anatoly K(dot) Lasareff) | 
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
| Cc: | "Graham Vickrage" <graham(at)digitalplanit(dot)com>, "postgresql" <pgsql-sql(at)postgresql(dot)org> | 
| Subject: | Re: Null function parameters | 
| Date: | 2000-08-23 11:46:14 | 
| Message-ID: | 86ya1o8ak9.fsf@tolikus.hq.aaanet.ru | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-sql | 
>>>>> "TL" == Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
 TL> "Graham Vickrage" <graham(at)digitalplanit(dot)com> writes:
 >> However my understanding was that if the default value is SQL NULL 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 you
 TL> declared the table column as NOT NULL then Postgres is doing exactly
 TL> what it should.  You may wish to code the insert 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 case
 TL> 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: 2
 a 
---
 1
(1 row)
tolik=# select a(null,2);
NOTICE:  1: <NULL> 2: <NULL>
 a 
---
  
(1 row)
-- 
Anatoly K. Lasareff              Email:       tolik(at)aaanet(dot)ru 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Graham Vickrage | 2000-08-23 12:07:31 | RE: Null function parameters | 
| Previous Message | hlefebvre | 2000-08-23 10:39:39 | Re: Date of creation and of change |