Jim Nasby <jim.na...@bluetreble.com> writes: > This works: > CREATE TYPE c AS (r float, i float); > CREATE FUNCTION mag(c c) RETURNS float LANGUAGE sql AS $$ > SELECT sqrt(c.r^2 + c.i^2) > $$; > SELECT mag( (2.2, 2.2) ); > mag > ------------------ > 3.11126983722081
> But this doesn't: > CREATE FUNCTION magsum( c c[] ) RETURNS float LANGUAGE sql AS $$ > SELECT sum(sqrt(c.r^2 + c.i^2)) FROM unnest(c) c > $$; > SELECT magsum( array[row(2.1, 2.1), row(2.2,2.2)] ); > ERROR: function magsum(record[]) does not exist at character 8 You need to cast it to some specific record type: regression=# SELECT magsum( array[row(2.1, 2.1), row(2.2,2.2)]::c[] ); magsum ------------------ 6.08111831820431 (1 row) regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers