Keith Worthington wrote: > John DeSoi wrote: > >> >> On May 31, 2005, at 2:52 PM, Nick Jones wrote: >> >>> Aww, I was really close :) ... thanks, that works. I believe I >>> understand it now :) Do you normally write functions in plpgsql or a >>> different language (sql, perl, c)? I ask so I should know where to >>> focus my learning. >> >> >> I like plpsql because the semantics are designed for working with >> databases and PostgreSQL in particular. I would only use a different >> language for PostgreSQL if plpgsql can't get the job done or cannot do >> it efficiently. >> >> John DeSoi, Ph.D. >> http://pgedit.com/ >> Power Tools for PostgreSQL > > > While I agree with John and write 98% of my functions in plpsql I found > it necessary to write a couple of functions in Perl because I had to > parse a text field that was sufficiently complex as to almost completely > rule out plpsql. > > You will need to focus your learning on whatever makes sense for the > majority of your application. The good news is that plpsql comes almost > for free so you still get one more. ;-)
If I can reasonably write it as an SQL function, then I do it that way ( because it's easiest to read/maintain and might be a little faster).
Otherwise, if I can reasonably write it in plpgsql, then I do it that way (for the reasons John laid out below and because it's still easy to read/maintain and harder to shoot myself in the foot with).
Finally, I resort to plpython or plperl when there's "No Other Way". I've never been in the position where I actually had to write c.