Обсуждение: Function x returns opaque in error typeidTypeRelid

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

Function x returns opaque in error typeidTypeRelid

От
Sondaar Roelof
Дата:
Hello,

I am a bit at a loss here.
If I create a function  which returns something it works fine.
If it returns opaque I get the following: ERROR:  typeidTypeRelid: Invalid
type - oid = 0
What am I doing wrong ?

Thanks in advance.
Best regards,
Roelof Sondaar

dhcp=# drop function lalala();
DROP
dhcp=# create function lalala() returns opaque as '
dhcp'# declare
dhcp'#     sname       text;
dhcp'# begin
dhcp'#     sname:= ''lalala'';
dhcp'# end;
dhcp'# ' language 'plpgsql';
CREATE
dhcp=#
dhcp=# select lalala();
ERROR:  typeidTypeRelid: Invalid type - oid = 0
dhcp=#
dhcp=# drop function lalala2();
DROP
dhcp=# create function lalala2() returns text as '
dhcp'# declare
dhcp'#     sname       text;
dhcp'# begin
dhcp'#     sname:= ''lalala'';
dhcp'#     return sname;
dhcp'# end;
dhcp'# ' language 'plpgsql';
CREATE
dhcp=#
dhcp=# select lalala2();lalala2
---------lalala
(1 row)



Re: Function x returns opaque in error typeidTypeRelid

От
Richard Huxton
Дата:
Sondaar Roelof wrote:
> 
> Hello,
> 
> I am a bit at a loss here.
> If I create a function  which returns something it works fine.
> If it returns opaque I get the following: ERROR:  typeidTypeRelid: Invalid
> type - oid = 0
> What am I doing wrong ?
> 
> dhcp=# create function lalala() returns opaque as '
> dhcp=#
> dhcp=# select lalala();
> ERROR:  typeidTypeRelid: Invalid type - oid = 0

I believe you can only use opaque from triggers - if you call a function
with select, it not unreasonably expects to have data returned.

In the absence of anything relevent I tend to return either 1 or
'succeeded' or similar.

- Richard Huxton