Re: Why select * from function doesn't work when function

Поиск
Список
Период
Сортировка
От Nigel J. Andrews
Тема Re: Why select * from function doesn't work when function
Дата
Msg-id Pine.LNX.4.21.0307250010510.22978-100000@ponder.fairway2k.co.uk
обсуждение исходный текст
Ответ на Re: Why select * from function doesn't work when function  ("Francisco Figueiredo Jr." <fxjrlists@yahoo.com.br>)
Ответы Re: Why select * from function doesn't work when function  ("Francisco Figueiredo Jr." <fxjrlists@yahoo.com.br>)
Список pgsql-hackers
On Thu, 24 Jul 2003, Francisco Figueiredo Jr. wrote:

> Nigel J. Andrews wrote:
> 
> > On Tue, 22 Jul 2003, Francisco Figueiredo Jr. wrote:
> > 
> > 
> >>>How's this for an alternative if you really don't want any rows returned:
> >>>
> >>>create function fincF ( )  returns setof integer as '
> >>> begin
> >>>   delete from blah;
> >>>   return;
> >>> end;
> >>>' language 'plpgsql';
> >>>
> >>>
> >>
> >>This works, but what I really want is not to return any rows. I mean, 
> >>the problem is not return null, but the error I get if I select * from 
> >>voidfunction.
> >>
> >>I just wanted void functions behave like others when called as select * 
> >>from voidfunction  So I dont have to do select voidfunction. :)
> > 
> > 
> > But that last does exactly that. Doesn't even return a null. Give it a quick
> > go, skip the delete statement obviously, and see. You'll get something like:
> > 
> >    ?
> > -------
> > 
> > (0 rows)
> > 
> 
> 
> Uhmmm, I think I didn't make myself clear. What I mean by void function 
> wasn't a function which just doesn't return anything. What I meant is a 
> function created like this:
> 
> create function voidfunction returns *void* as [...]

I knew what you meant but why the insistence on the void return type? All it's
saying is that there isn't any interpretation that can be applied to anything
that may (or may not) be returned from it so what are you trying to gain by
forcing the void type when you're forced into ignoring the result anyway?

> 
> The problem to me is the void in the returns ;)
> 
> If you create a function with the returns void above you'll see that if 
> you do select * from voidfunction it gives you the error I said. But it 
> works with select voidfunction.

Well don't create the function as returning void :)

> 
> I just wanted it to work with select * from voidfunction too. :)
> 

I think I did most of mine as returning integer type and the value 1 (just for
something to return).


Nigel Andrews




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Sailesh Krishnamurthy
Дата:
Сообщение: Re: this is in plain text (row level locks)
Следующее
От: Joe Conway
Дата:
Сообщение: best way to determine start of new statement within a function?