From: | okbob(at)pgfoundry(dot)org (User Okbob) |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | plpsm - plpgpsm: All composite types are nullable in SQL/PSM and default |
Date: | 2008-03-04 18:36:26 |
Message-ID: | 20080304183626.6451817ADD7F@pgfoundry.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Log Message:
-----------
All composite types are nullable in SQL/PSM and default value is NULL. PostgreSQL
doesn't support objects constructor, so value has to be inicialised with row constructor.
CREATE TYPE xx AS (a integer, b integer);
CREATE OR REPLACE FUNCTION fxx()
RETURNS void AS
$$
BEGIN
DECLARE a xx;
IF a IS NULL THEN PRINT 'is null'; END IF;
SET a = row();
SET a.a = 10, a.b = 20;
PRINT a;
SET a = NULL;
PRINT a;
END;
$$ LANGUAGE plpgpsm;
SELECT fxx();
NOTICE: is null
NOTICE: (10,20)
NOTICE: <NULL>
fxx
-----
(1 row)
DROP FUNCTION fxx();
-- cannot use empty composite value
CREATE OR REPLACE FUNCTION fxx()
RETURNS void AS
$$
BEGIN
DECLARE a xx;
PRINT a.a;
END;
$$ LANGUAGE plpgpsm;
SELECT fxx();
ERROR: variable "a" is not assigned yet
CONTEXT: PL/pgPSM function "fxx()" line 4 at PRINT
DROP FUNCTION fxx();
DROP TYPE xx;
Modified Files:
--------------
plpgpsm/src:
pl_comp.c (r1.26 -> r1.27)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/plpsm/plpgpsm/src/pl_comp.c.diff?r1=1.26&r2=1.27)
pl_exec.c (r1.62 -> r1.63)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/plpsm/plpgpsm/src/pl_exec.c.diff?r1=1.62&r2=1.63)
plpgpsm.h (r1.48 -> r1.49)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/plpsm/plpgpsm/src/plpgpsm.h.diff?r1=1.48&r2=1.49)
plpgpsm/src/expected:
plpgpsm.out (r1.22 -> r1.23)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/plpsm/plpgpsm/src/expected/plpgpsm.out.diff?r1=1.22&r2=1.23)
plpgpsm/src/sql:
plpgpsm.sql (r1.19 -> r1.20)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/plpsm/plpgpsm/src/sql/plpgpsm.sql.diff?r1=1.19&r2=1.20)
From | Date | Subject | |
---|---|---|---|
Next Message | User Hlinnaka | 2008-03-04 18:40:08 | orafce - orafce: Fixed a bug in dbms_alert_defered_signal: if message |
Previous Message | User Hlinnaka | 2008-03-04 18:31:21 | orafce - orafce: Fixed a bug in dbms_alert_defered_signal: if message |