Обсуждение: Implementing 2 different transactions in a PL/Perl function
Hi,
How can I have two different transactions is a plperlu function?
My purpose is as follows:-
Transaction 1 does some series of inserts in tbl_abc
Transaction 2 updates some columns in tbl_abc fetching records from some other table.
I basically want 2 independent transactions in my function so that 1 commits as soon as it is done and 2 doesn't
depend on it at all.
Thanks,
~Jas
How can I have two different transactions is a plperlu function?
My purpose is as follows:-
Transaction 1 does some series of inserts in tbl_abc
Transaction 2 updates some columns in tbl_abc fetching records from some other table.
I basically want 2 independent transactions in my function so that 1 commits as soon as it is done and 2 doesn't
depend on it at all.
Thanks,
~Jas
Jasbinder Singh Bali wrote: > Hi, > > How can I have two different transactions is a plperlu function? > My purpose is as follows:- > > Transaction 1 does some series of inserts in tbl_abc > Transaction 2 updates some columns in tbl_abc fetching records from some > other table. You'll have to connect back to yourself using dblink() or dbilink() - see contrib/ for details. Don't forget to consider what it means to have a connection string in a function-body either. -- Richard Huxton Archonet Ltd
On Jul 10, 2007, at 14:41 , Jasbinder Singh Bali wrote: > I basically want 2 independent transactions in my function so that > 1 commits as soon as it is done and 2 doesn't > depend on it at all. If they're truly independent, I'd write them as two separate functions., possibly calling both of them from within a third. Michael Glaesemann grzm seespotcode net
You mean to say keep using spi_exec till I want everything in the same transaction and the point where I want a separate transaction, use DBI ?
On 7/10/07, Richard Huxton <dev@archonet.com> wrote:
Jasbinder Singh Bali wrote:
> Hi,
>
> How can I have two different transactions is a plperlu function?
> My purpose is as follows:-
>
> Transaction 1 does some series of inserts in tbl_abc
> Transaction 2 updates some columns in tbl_abc fetching records from some
> other table.
You'll have to connect back to yourself using dblink() or dbilink() -
see contrib/ for details.
Don't forget to consider what it means to have a connection string in a
function-body either.
--
Richard Huxton
Archonet Ltd
Jasbinder Singh Bali wrote: > You mean to say keep using spi_exec till I want everything in the same > transaction and the point where I want a separate transaction, use DBI ? Yes - if you have two functions A,B then do everything as normal in each, except you call function B using dblink() from function A. That will give you a separate session which can commit/rollback separately from the original. -- Richard Huxton Archonet Ltd