Thread: Missing SELECT INTO ... DEFAULT VALUES in plpgsql for composite t ypes
Missing SELECT INTO ... DEFAULT VALUES in plpgsql for composite t ypes
From
"Passynkov, Vadim"
Date:
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