Обсуждение: Can't use "any" with SQL functions

Поиск
Список
Период
Сортировка

Can't use "any" with SQL functions

От
Decibel!
Дата:
Is there a reason we disallow using "any" with SQL functions?

decibel@phonebook.local=# create function textcoalesce("any") returns
void language sql as $$SELECT coalesce( $1::text, '<NULL>' )$$;
ERROR:  SQL functions cannot have arguments of type "any"
STATEMENT:  create function textcoalesce("any") returns void language
sql as $$SELECT coalesce( $1::text, '<NULL>' )$$;
ERROR:  SQL functions cannot have arguments of type "any"
decibel@phonebook.local=# SELECT version();

version
------------------------------------------------------------------------
-----------------------------------------------------------------------
  PostgreSQL 8.3.7 on powerpc-apple-darwin8.11.0, compiled by GCC
powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc.
build 5370)
(1 row)

decibel@phonebook.local=#
--
Decibel!, aka Jim C. Nasby, Database Architect  decibel@decibel.org
Give your computer some brain candy! www.distributed.net Team #1828



Re: Can't use "any" with SQL functions

От
Tom Lane
Дата:
Decibel! <decibel@decibel.org> writes:
> Is there a reason we disallow using "any" with SQL functions?

Yes.  Try "anyelement" instead.

            regards, tom lane

Re: Can't use "any" with SQL functions

От
Alvaro Herrera
Дата:
BTW is there a reason the error messages say "plpgsql functions cannot
..." instead of "PL/pgSQL functions cannot ..."?

--
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

Re: Can't use "any" with SQL functions

От
Tom Lane
Дата:
Alvaro Herrera <alvherre@commandprompt.com> writes:
> BTW is there a reason the error messages say "plpgsql functions cannot
> ..." instead of "PL/pgSQL functions cannot ..."?

Somewhere along the line there was the idea that the messages ought to
match the "real" name of the PL language, which is plpgsql.  The other
name is marketing.

            regards, tom lane