Обсуждение: Error message with a SQL function

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

Error message with a SQL function

От
proghome@silesky.com (krystoffff)
Дата:
Hi

I try to create the following SQL function:

CREATE FUNCTION update_affiliate(int,double precision,double
precision) RETURNS void AS ' UPDATE affiliate SET balance=balance +
$2, balance_in_points=balance_in_points + ( $2 / $3 ) WHERE id = $1; '
LANGUAGE 'sql';

but when I submit this query directly with PostgreSQL, I have the
following error message:

PostgreSQL said: ERROR: Unable to locate type oid 325664 in catalog 


I think the problem comes from the first parameter ($1) but I don't
understand because affiliate.id is indeed the primary key of the table
affiliate.

Has anybody an idea ?
Thanks
Krystoffff


Re: Error message with a SQL function

От
Tom Lane
Дата:
proghome@silesky.com (krystoffff) writes:
> CREATE FUNCTION update_affiliate(int,double precision,double
> precision) RETURNS void AS ' UPDATE affiliate SET balance=balance +
> $2, balance_in_points=balance_in_points + ( $2 / $3 ) WHERE id = $1; '
> LANGUAGE 'sql';

I don't believe there was a type "void" in PG 7.1.  IIRC, back then the
custom was to say "RETURNS opaque" in this situation.

It's probably time for you to update to something newer ...
        regards, tom lane


Re: Error message with a SQL function

От
proghome@silesky.com (krystoffff)
Дата:
Thanks

You were right, it was because of the return void
But I think in the documentation, I read somewhere that this kind of
return was allowed ... I must have mistaken ...