Thread: procedure returns a tuple
Hi, I a little study on DejaNews a large discussion (October 1999) about new fmgr and functions which return tuples. (IMHO 'function' is not good name for this, better is 'procedure'.) A question, is this feature planned for 7.1 and work on this anyone? IMHO it not needs change current fmgr code, it needs only RTE code (parser and transformStmt) and executor code change (executor call myfunc() and this function create temp table and this table use executor as standart table.) (..it is really simplification :-) Or is other idea? Karel /* ----------------* Karel Zak * zakkr@zf.jcu.cz * http://home.zf.jcu.cz/~zakkr/* C, PostgreSQL, PHP, WWW,http://docs.linux.cz* ----------------*/
Karel Zak wrote: > I a little study on DejaNews a large discussion (October 1999) about new > fmgr and functions which return tuples. (IMHO 'function' is not good name > for this, better is 'procedure'.) > > A question, is this feature planned for 7.1 and work on this anyone? > > IMHO it not needs change current fmgr code, it needs only RTE code (parser > and transformStmt) and executor code change (executor call myfunc() and this > function create temp table and this table use executor as standart table.) > (..it is really simplification :-) > > Or is other idea? Right - simplified. Here again, the proposed overhaul of the parse-/querytree is the reason why we don't want to tackle this issue now. At that time, any relation as well as a 'procedure' (function returning a tuple set) will become a "tuple-source".A tuple source is mainly an abstract node, describing the shape of tuples it returns, hiding how itproduces them to the caller. This way, there is no fundamental difference between a relation, a procedure or an external database link any more. Up to now we only have a vague idea in mind. And we're not sure if we'll do this huge changes in the main CVS trunkor a separate branch. Neither have we decided when to start on it, because we need a couple of key developers at the same time to ensure reasonable progress in that project (none of us can do it alone). After 7.0 is out, I'll try to collect all the design issues, break up the entire package into smaller chunks and developa project plan for it. Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #========================================= wieck@debis.com (Jan Wieck) #
On Mon, 3 Apr 2000, Jan Wieck wrote: > Karel Zak wrote: > > > I a little study on DejaNews a large discussion (October 1999) about new > > fmgr and functions which return tuples. (IMHO 'function' is not good name > > for this, better is 'procedure'.) Jan, thanks for answer, I thought that I again ask about bad matter or I send a stupid question :-) > Here again, the proposed overhaul of the parse-/querytree is > the reason why we don't want to tackle this issue now. At > that time, any relation as well as a 'procedure' (function > returning a tuple set) will become a "tuple-source". A tuple > source is mainly an abstract node, describing the shape of > tuples it returns, hiding how it produces them to the caller. > > This way, there is no fundamental difference between a > relation, a procedure or an external database link any more. Last weekend I a little explore current sources for this and the current postgresql very "vegetates" on a relation and a example transform statement code very depend on relation structs. Yes, Berkeley's code design for this is not modular and abstract. > Up to now we only have a vague idea in mind. And we're not > sure if we'll do this huge changes in the main CVS trunk or a > separate branch. Neither have we decided when to start on > it, because we need a couple of key developers at the same > time to ensure reasonable progress in that project (none of > us can do it alone). > > After 7.0 is out, I'll try to collect all the design issues, > break up the entire package into smaller chunks and develop a > project plan for it. Well. Karel