| From: | "Florian G(dot) Pflug" <fgp(at)phlo(dot)org> |
|---|---|
| To: | Postgresql-Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | DEFAULT of domain ignored in plpgsql (8.4.1) |
| Date: | 2009-11-20 02:06:10 |
| Message-ID: | 4B05F992.2060001@phlo.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi
It seems that pl/pgsql ignores the DEFAULT value of domains for local
variables. With the following definitions in place
create domain myint as int default 0;
create or replace function myint() returns myint as $body$
declare
v_result myint;
begin
return v_result;
end;
$body$ language plpgsql immutable;
issuing
select myint();
returns NULL, not 0 on postgres 8.4.1
If the line
v_result myint;
is changes to
v_result myint default 0;
than 0 is returned as expected.
I've tried to create a patch, but didn't see how I'd convert the result
from get_typedefault() (A Node*, presumeably the parsetree corresponding
to the default expression?) into a plan that I could store in a
PLpgSQL_expr. I guess I'd need something like SPI_prepare_plan that
takes a parse tree instead of a query string. Or am I on a completely
wrong track there?
While trying to cook up a patch I've also stumbled over what I perceive
as a bug relating to DOMAINS and column DEFAULTs. I'll write that up in
a second E-Mail to avoid confusion.
best regards,
Florian Pflug
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Josh Berkus | 2009-11-20 02:14:19 | Re: Summary and Plan for Hot Standby |
| Previous Message | Magnus Hagander | 2009-11-20 01:41:37 | enable-thread-safety defaults? |