Re: how to execute a C program via trigger ?

Lists: pgsql-sql
From: "S(dot)F(dot) Lee" <sflee_tw(at)yahoo(dot)com>
To: clayton cottingham <clayton(at)marketingchallenge(dot)com>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: how to execute a C program via trigger ?
Date: 2000-12-05 02:20:29
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-sql

Thank for your hint, but I have some questions :

1. Do I have to compile the C program into a shared
object (*.so)?
2. Do I have to use SPI (SPI is too complicate to
me)?

My request is very simple. I have a program
(my_c_program)
that I can execute it under shell by typing
(my_c_program).
Basically my_c_program is not a function.

I want to fire a trigger after I update the field
(x) in table foo, and the trigger can run the
my_c_program. Is there an easy way to execute a
PROCESS
via trigger?

regards, S.F. Lee

--- clayton cottingham
<clayton(at)marketingchallenge(dot)com> wrote:
> take a look at the contrib sections fti or fulltext
> index example
>
> it takes you through it all
>
>
>
> "S.F. Lee" wrote:
> >
> > Hi,
> >
> > I am using Red Hat 6.1 + PostgreSQL 7.0.3. All
> of
> > my
> > applications are developed by C and ECPG. I would
> > like to know how to execute a C program by
> Trigger,for
> > example:
> >
> > 1. I have a program my_c_program.c shuch as:
> >
> > #include <stdio.h>
> > main()
> > {
> > printf("Hello World !\n");
> > }
> >
> > 2. I create a table foo by following command
> >
> > CREATE TABLE foo
> > (
> > x int4
> > );
> >
> > 3. create a trigger foo_trig :
> >
> > create trigger foo_trig after update
> > on foo for each row execute procedure sql_c();
> >
> > 4. I don't know how to design sql_c(), can
> anyone
> > give a small plpsql program that can execute
> > my_c_program?
> >
> > regards, S.F. Lee
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Yahoo! Shopping - Thousands of Stores. Millions of
> Products.
> > http://shopping.yahoo.com/

__________________________________________________
Do You Yahoo!?
Yahoo! Shopping - Thousands of Stores. Millions of Products.
http://shopping.yahoo.com/


From: "Koen Antonissen" <koen(at)v3(dot)com>
To: <pgsql-sql(at)postgresql(dot)org>
Subject: Join performance
Date: 2000-12-05 09:42:09
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-sql

Hi there,

I'm having some problems with the performance on queries including a join.

for example:
SELECT members_data.pwd FROM emails,members_data WHERE emails.email =
'koen(at)v3(dot)com' AND emails.uin = members_data.uin;

is a lot slower then extracting the join into 2 seperate queries like:

SELECT emails.uin FROM emails WHERE lower(emails.email) = 'koen(at)v3(dot)com';

--and use the result in the next query ($db_result)

SELECT members_data.pwd FROM members_data WHERE members_data.uin =
$db_result;

Now the login routine is MUCH faster ;-) , but performance problems remain
when the the result is more than 1 record (Unlike a unique emailaddress...)

Is there anyone out there who has ideas how to write faster queries
including tablejoins?

I already tried Inner Join, Natural Join and Join On, wich didn't seem
affect the performance in any way...

Kind regards,
Koen Antonissen
koen(at)trilab(dot)com
www.trilab.com


From: Clayton Cottingham <clayton(at)marketingchallenge(dot)com>
To: "S(dot)F(dot) Lee" <sflee_tw(at)yahoo(dot)com>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: how to execute a C program via trigger ?
Date: 2000-12-05 09:58:41
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-sql


On Mon, 4 Dec 2000 18:20:29 -0800 (PST), S.F. Lee said:

> Thank for your hint, but I have some questions :
>
> 1. Do I have to compile the C program into a shared
> object (*.so)?

yes

> 2. Do I have to use SPI (SPI is too complicate to
> me)?
>
> My request is very simple. I have a program
> (my_c_program)
> that I can execute it under shell by typing
> (my_c_program).
> Basically my_c_program is not a function.
>

im not sure anyone?

> I want to fire a trigger after I update the field
> (x) in table foo, and the trigger can run the
> my_c_program. Is there an easy way to execute a
> PROCESS
> via trigger?
>
> regards, S.F. Lee
>

id say dont use C!! use pl/sql

but if your trying to learn the prog of c functions
youll have to get help elsewhere unfortunatley

im not even newbie status on c!