Re: Function accepting array of complex type
От | Tom Lane |
---|---|
Тема | Re: Function accepting array of complex type |
Дата | |
Msg-id | 24251.1440545299@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Function accepting array of complex type (Jim Nasby <Jim.Nasby@BlueTreble.com>) |
Ответы |
Re: Function accepting array of complex type
|
Список | pgsql-hackers |
Jim Nasby <Jim.Nasby@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
В списке pgsql-hackers по дате отправления: