Re: functions returning records - Mailing list pgsql-hackers

From Alex Pilosov
Subject Re: functions returning records
Date
Msg-id Pine.BSO.4.10.10106272009080.7004-100000@spider.pilosoft.com
Whole thread Raw
In response to Re: functions returning records  (Hannu Krosing <hannu@tm.ee>)
Responses Re: functions returning records  (Jan Wieck <JanWieck@Yahoo.com>)
List pgsql-hackers
On Thu, 28 Jun 2001, Hannu Krosing wrote:

> Tom Lane wrote:
> > 
> > Jan Wieck <JanWieck@Yahoo.com> writes:
> > >     1.  Adding a new relkind  that  means  'record'.  So  we  use
> > >         pg_class,  pg_attribute  and  pg_type as we do for tables
> > >         and views to describe a structure.
> > 
> > It seems fairly ugly to have a pg_class entry for something that
> > isn't a table or even a table-like entity. 
> 
> I dont think that sequence is any more table-like than record.
> 
> And difference between type and class ia also quite debatable in 
> most languages ;)
> 
> Also there seems to be more existing creative use of pg_class - what 
> does relkind='s' record for pg_variable stand for ?
> 
> > Otherwise this proposal sounds good.  Jan and I talked about it earlier;
> > one point I recall is that the portal/cursor based approach can
> > internally support the existing multiple-call implementation of
> > functions returning sets.  That is, when you call the portal to get the
> > next tuple, it might hand you back a tuple saved from a previous
> > function call, or it might turn around and call the function again to
> > get the next tuple.
> > 
> > BTW, once we've had this for a release or two, I'd like to rip out the
> > existing support for calling functions-returning-sets during SELECT list
> > evaluation, so that expression evaluation could be simplified and sped
> > up.  But we can wait for people to change over their existing uses
> > before we do that.
> 
> How hard would it be to turn this around and implement RETURN AND
> CONTINUE
> for at least PL/PGSQL, and possibly C/Perl/Python ... ?
Cannot talk about plpgsql, but for c this would be probably implemented
with setjmp and with perl with goto. Probably not very complex.

-alex



pgsql-hackers by date:

Previous
From: Philip Warner
Date:
Subject: Re: pg_largeobject is a security hole
Next
From: Jan Wieck
Date:
Subject: Re: functions returning records