Re: Functions - Mailing list pgsql-novice

From Nick Jones
Subject Re: Functions
Date
Msg-id be082070050601084578d4d488@mail.gmail.com
Whole thread Raw
In response to Re: Functions  (Andrew Hammond <ahammond@ca.afilias.info>)
List pgsql-novice
Thanks for all the info guys!  I appreciate it.

On 6/1/05, Andrew Hammond <ahammond@ca.afilias.info> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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.

- --
Andrew Hammond    416-673-4138    ahammond@ca.afilias.info
Database Administrator, Afilias Canada Corp.
CB83 2838 4B67 D40F D086 3568 81FC E7E5 27AF 4A9A
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCnc9Wgfzn5SevSpoRAlmmAKCQ8uH1u2z8E9Mzxof57J/l2NhBvQCgpISX
0WS6ftMV5zq4XYd941Lbuwk=
=U2fM
-----END PGP SIGNATURE-----



--
Thanks,
Nick

pgsql-novice by date:

Previous
From: Michael Fuhr
Date:
Subject: Re: updating elements of an array which is part of a composite type?
Next
From: Tom Lane
Date:
Subject: Re: Novice question: PostgreSQL 7.2.4 running on RedHat linux