Missing SELECT INTO ... DEFAULT VALUES in plpgsql for composite t ypes - Mailing list pgsql-sql

From Passynkov, Vadim
Subject Missing SELECT INTO ... DEFAULT VALUES in plpgsql for composite t ypes
Date
Msg-id C8C8E7457059D5119E4700D0B765DCB8016AA914@sinope.inside.pathcom.com
Whole thread Raw
List pgsql-sql
Hi all

Just self-explanatory code below

-- var1 with default value.
CREATE DOMAIN var1_type AS pg_catalog.text DEFAULT 'udp'::pg_catalog.text CONSTRAINT "var1_const" CHECK ( VALUE IS NOT
NULLAND ( VALUE = 'tcp'::pg_catalog.text OR VALUE =
 
'udp'::pg_catalog.text ) );

-- var2 without default
CREATE DOMAIN var2_type AS pg_catalog.int4 CONSTRAINT "var2_const" CHECK ( VALUE IS NOT NULL AND VALUE > 0 );


-- Let's create composite type foo
CREATE TABLE foo ( var1 var1_type, var2 var2_type
);

-- and let's create constructor for it
CREATE OR REPLACE FUNCTION foo ( int4 ) RETURNS foo AS '
DECLARE this foo;
BEGIN /*  * I dont want hard coded default  * value for this.var1 here  * but SELECT INTO this DEFAULT VALUES not
possiblein plpgsql  */
 
-- SELECT INTO this DEFAULT VALUES; this.var2 := $1; RETURN this;
END;
' LANGUAGE 'plpgsql' IMMUTABLE STRICT;

SELECT * from foo ( 2 );var1 | var2
------+------     |    2
(1 row)

but I want var1 | var2
------+------ udp |    2
(1 row)

Is anybody know any solution for this?

-- 
Vadim Passynkov


pgsql-sql by date:

Previous
From: Richard Rowell
Date:
Subject: Recursive SETOF function
Next
From: Mike Rylander
Date:
Subject: Re: Recursive SETOF function