Skip site navigation (1) Skip section navigation (2)

Re: Get current trasanction id

From: Marek Lewczuk <newsy(at)lewczuk(dot)com>
To: jzobel(at)heute-morgen(dot)de
Cc: Lista dyskusyjna pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Get current trasanction id
Date: 2004-12-28 15:51:36
Message-ID: 41D18108.1080901@lewczuk.com (view raw or flat)
Thread:
Lists: pgsql-generalpgsql-sql
Joachim Zobel napisał(a):
> Am Mo, den 27.12.2004 schrieb Marek Lewczuk um 20:54:
> 
>>Michael Fuhr napisał(a):
>>
>>>Why do you want the transaction ID?  What problem are you trying
>>>to solve?
>>>
>>
>>I've already solved the problem - I found somewhere on the web a very 
>>simple C function, which returns transaction id. I need transaction id 
>>for plperl functions setVar, getVar (using $_SHARED array). Functions 
>>can write/read variables which are available either for connection or 
>>transaction.
> 
> 
> It would be nice to have that in pgplsql. I once needed a transaction Id
> in oracle for a historisation trigger. It saves before copies of the
> modified records on a per transaction basis.
As I wrote before you can have it in plpgsql - you just need to install 
special c function as e.g getCurrentTransactionId() and you will be able 
to get id from within plpgsql - but I agree that this function should be 
in base SQL functions or at least in contrib modules.

C function is very simple:

getcurrenttransactionid.c:
#include "postgres.h"
#include "access/xact.h"

Datum getcurrenttransactionid(PG_FUNCTION_ARGS)
{
         TransactionId xid = GetCurrentTransactionId();
         PG_RETURN_INT32((int32) xid);
}


getcurrenttransactionid.sql:
SET search_path = public;

CREATE FUNCTION getCurrentTransactionId()
	RETURNS integer
	AS 'MODULE_PATHNAME'
	LANGUAGE 'c';



Regards,

Marek Lewczuk

 

In response to

pgsql-sql by date

Next:From: Nathan PickettDate: 2004-12-28 17:12:03
Subject: Making a prepared statement in a stored procedure
Previous:From: Joachim ZobelDate: 2004-12-28 15:05:53
Subject: Re: Get current trasanction id

pgsql-general by date

Next:From: Greg StarkDate: 2004-12-28 17:50:41
Subject: Re: Long-running performance (MVCC, Vacuum, etc.) - Any fix?
Previous:From: Tom LaneDate: 2004-12-28 15:13:14
Subject: Re: 8.0 rc2 Problem

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group