From: | Michael Fuhr <mike(at)fuhr(dot)org> |
---|---|
To: | Jasbinder Bali <jsbali(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Help requd in writing functions in C and using in Postgres |
Date: | 2006-06-20 16:58:10 |
Message-ID: | 20060620165810.GA67893@winnie.fuhr.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
[Please copy the mailing list on replies so others can participate
in and learn from the discussion.]
On Tue, Jun 20, 2006 at 11:39:03AM -0400, Jasbinder Bali wrote:
> Well, as in normal Sql server or oracle Stored procedures, you write a
> procedure in the database server and some middle tier would invoke it.
> Now here what is the concept of server side or client side function in
> postres if i just have to create a function in C and then would like my
> Stored procedure to invoke it. Also all the DB related activities like
> select, delete, update should be taken care of by the C function itself.
It sounds like you want to write a server-side function that a
client application or another server-side function could invoke
with SELECT do_stuff() (or PERFORM do_stuff() in PL/pgSQL). You
can do that in C, but unless you need the kind of low-level
functionality that only C can provide then you'd probably be better
off using a higher level server-side language like PL/pgSQL, PL/Perl,
PL/Python, PL/Tcl, PL/Ruby, PL/Java, PL/R, etc.
Functions in PostgreSQL aren't the same as stored procedures in
some other DBMSs. For example, a function can't start or end a
transaction since it's already being executed in the context of a
transaction, although in 8.0 and later a function can do partial
rollbacks via exception handling. However, a function could connect
to the database via dblink, Perl DBI, etc., and then do anything
that an ordinary client could do.
--
Michael Fuhr
From | Date | Subject | |
---|---|---|---|
Next Message | Aaron Koning | 2006-06-20 17:06:25 | Re: Exporting data from view |
Previous Message | Worky Workerson | 2006-06-20 16:47:50 | Exporting data from view |