Re: Multiple Parameters to an Aggregate Function
От | Joel Burton |
---|---|
Тема | Re: Multiple Parameters to an Aggregate Function |
Дата | |
Msg-id | Pine.LNX.4.30.0110171348180.24721-100000@temp.joelburton.com обсуждение исходный текст |
Ответ на | Multiple Parameters to an Aggregate Function ("Anthony Bouvier" <anthony@developware.com>) |
Список | pgsql-sql |
On Tue, 16 Oct 2001, Anthony Bouvier wrote: > I can create an AGGREGATE but from what I can tell, the format of the > sfunc can only have two parameters like so: > > sfunc_name(type,type) > > Where the first parameter is what was passed before, and the second > parameter is the 'new' info to do stuff to. Is it not possible to do > something similar to?: > > sfunc_name(type,type,type) > > So that I can pass the url and name to the AGGREGATE (so it can in turn > pass it to the sfunc)? Where the sfunc could be something like so: > > CREATE FUNCTION link_agg (text,text,text) > RETURNS text AS ' > return $_[0] . qq[<a href="http://www.domain.com/$_[0]" > class="body_link">$_[1]</a><br>]; > ' LANGUAGE 'plperl'; > > Because then I gain benefit of a stored procedure and cut the SQL in the > script down to: > > SELECT link_agg(url,name) FROM link; > > Which will return the entire list at once, instead of needing the script > to loop through multiple fetches. I have a techdoc about using aggregate functions to create faster web looping at http://www.zope.org/Members/pupq/pg_in_aggregates It was written w/examples in DTML, Zope's scripting language, rather than in Perl/DBI, but you should be able to easily follow it. Essentially, what you want to end up with is something like this: SELECT make_into_li ( make_into_text ( url, name ) ); where make_into_text is the aggregate, and make_into_text is the formatting function. -- Joel BURTON | joel@joelburton.com | joelburton.com | aim: wjoelburton Independent Knowledge Management Consultant
В списке pgsql-sql по дате отправления: