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

Re: session id and global storage

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: rdeleonp(at)gmail(dot)com, rdeleonp(at)yahoo(dot)com
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: session id and global storage
Date: 2006-06-29 13:44:13
Message-ID: 44A3D92D.8020502@dunslane.net (view raw or flat)
Thread:
Lists: pgsql-hackers
Rodrigo De Leon wrote:

>>>> Hi, I cant find any function, which tells me something like session
>>>> id. Is there something like that? I need it in my AM, because I need
>>>> to know, if something which I wrote in file was written in this
>>>> current session or previously.
>>>
>>>
>>> How about
>>> select procpid||' '||backend_start from pg_stat_activity;
>>> Yours,
>>> Laurenz Albe
>>
>>
>> Something like this would be maybe possible, but this select can
>> return more rows, when the user is connected with more instances...
>>
>
> You could do this:
>
>     SELECT procpid||' '||backend_start
>     FROM pg_stat_activity
>     WHERE datname = current_database()
>     AND usename = session_user
>     AND client_addr = inet_client_addr()
>     AND client_port = inet_client_port();
>

That's pretty roundabout. We already expose (hex coded) pid.starttime as 
a session identifier in log_line_prefix (it's the %c escape) so I don't 
see any reason not to provide either the same thing directly in a 
function, or at least to expose the backend pid.

If you need it in backend C code, the data can be fetched from MyProcPid 
and MyProcPort->session_start.tv_sec

cheers

andrew


In response to

Responses

pgsql-hackers by date

Next:From: Greg StarkDate: 2006-06-29 13:47:01
Subject: Re: [GENERAL] UUID's as primary keys
Previous:From: Rodrigo De LeonDate: 2006-06-29 13:12:20
Subject: Re: session id and global storage

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