Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Semi-OT: Functions and Aggregates in PostgreSQL

by notsoevil (Pilgrim)
on Oct 19, 2001 at 00:00 UTC ( #119783=note: print w/replies, xml ) Need Help??


in reply to Semi-OT: Functions and Aggregates in PostgreSQL

Well, I've seem to have found an answer to my own question. Isn't funny how one can explain a coding problem to a non-technical person (eg: my loving wife), and somehow they give you an answer simply by listening?

Not totally tested yet (I need to 'greek' the database first), but cursory inspection leads me to believe this is what I wanted in the first place.

CREATE FUNCTION format_links(text,text) RETURNS text AS ' return qq[<a href="http://www.domain.com/$_[0]">$_[1]</a>]; ' LANGUAGE 'plperl'; CREATE FUNCTION links_agg(text,text) RETURNS text AS ' if ($_[0]) { return $_[0] . qq[<br>] . $_[1]; } else { return $_[1]; } ' LANGUAGE 'plperl'; CREATE AGGREGATE get_links (basetype=text, sfunc=links_agg, stype=text +, initcond='');
Which means the following:
SELECT get_links(format_links(url,name)) FROM links;
Will yield my needed results. I'll probably abstract with a VIEW:
CREATE VIEW link_list AS SELECT get_links(format_links(url,name)) FROM links
So that I can just say:
SELECT * FROM link_list;
Hopefully my original question and now this reply will be useful to some other monk (or aspiring monk) later on -- even if it is "Semi-OT".

--
notsoevil
--
Jeremiah 49:32 - And their camels shall be a booty. . .

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://119783]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2023-12-08 18:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What's your preferred 'use VERSION' for new CPAN modules in 2023?











    Results (37 votes). Check out past polls.

    Notices?