From: | "Mikko Partio" <mpartio(at)gmail(dot)com> |
---|---|
To: | pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | SPI-functions and transaction control |
Date: | 2008-02-18 07:15:01 |
Message-ID: | 2ca799770802172315s4d4caf77t3693843697982014@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello list
I am trying to write a function in c that would 'merge' two tables together.
The idea is that we insert rows from one table to another, and if there is a
constraint violation, update the old row with the new row. I have done this
succesfully with plpgsql, but alas, the tables are so big that it takes
quite some time for the function to finish.
Now, I was wondering if a c function would be faster, and with the help of
the manual I have written a function that can insert tuples from one table
to another. As the manual states (
http://www.postgresql.org/docs/8.3/interactive/spi.html) there is no way to
catch the constraint violation error with SPI though. The manual still
mentions that there is an undocumented way of doing this, has anybody ever
done this? I was looking the 'exception' code at
src/pl/plpgsql/src/pl_exec.c but it's quite frightening since I really don't
have that much experience in c :)
Regards
Mikko
From | Date | Subject | |
---|---|---|---|
Next Message | Hermann Muster | 2008-02-18 10:05:21 | Re: msvcr80.dll and PostgreSQL 8.3 under Windows XP |
Previous Message | Tim Hart | 2008-02-18 06:26:07 | Re: Question about the enum type |