Re: [GENERAL] Unique Session ID in PGSQL?

2011-05-19 Thread Albe Laurenz
Pavel Stehule wrote:
 Is there any function in PGSQL that returns an unique Session
 identifier of the actual session?
 For example a Bigint, or GUID, or etc?
 Can I get the living Session identifiers from PG?

 try

 postgres=# select pg_backend_pid();
  pg_backend_pid
 
   17327
 (1 row)

I don't totally understand the intended use, but process IDs have the
problem that they will get reused eventually.

So if that's not good enough, you can construct a session ID like
%c in log_line_prefix with the query found in the documentation:

http://www.postgresql.org/docs/current/static/runtime-config-logging.html#GUC-LOG-LINE-PREFIX

Yours,
Laurenz Albe

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] Unique Session ID in PGSQL?

2011-05-19 Thread Merlin Moncure
On Thu, May 19, 2011 at 4:21 AM, Albe Laurenz laurenz.a...@wien.gv.at wrote:
 Pavel Stehule wrote:
 Is there any function in PGSQL that returns an unique Session
 identifier of the actual session?
 For example a Bigint, or GUID, or etc?
 Can I get the living Session identifiers from PG?

 try

 postgres=# select pg_backend_pid();
  pg_backend_pid
 
           17327
 (1 row)

 I don't totally understand the intended use, but process IDs have the
 problem that they will get reused eventually.

 So if that's not good enough, you can construct a session ID like
 %c in log_line_prefix with the query found in the documentation:

no, but pid + backend_start_time *is* enough -- the backend session is
generated directly from them.  I personally wouldn't use the hex
version -- pointless obfuscation  -- I would just maintain pid+start
time as the session if I wasn't worried about the session being
guessed, and a salted digest of those two values if I was.

merlin

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[GENERAL] Unique Session ID in PGSQL?

2011-05-18 Thread Durumdara
Hi!

Is there any function in PGSQL that returns an unique Session
identifier of the actual session?
For example a Bigint, or GUID, or etc?
Can I get the living Session identifiers from PG?

We have a little application that uses these infos which are basically
came from another database system, and I will port this, but I don't
know, how to do in PGSQL...
In this app. we associated (stored) the session id to a special field
in some tables.
We can retreive the living session ids with a system functions.

If a session died, these records have become irrelevant - we can
delete them. If the session still alive, we don't touch them, only can
read the content...

I see adv_locks in pg, but because the quantity of locks are
pre-determined by the server, I don't choose them.
I better like a technic that cannot exhaust the number of persistent elements.

Thanks:
   dd

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] Unique Session ID in PGSQL?

2011-05-18 Thread Pavel Stehule
Hello

2011/5/18 Durumdara durumd...@gmail.com:
 Hi!

 Is there any function in PGSQL that returns an unique Session
 identifier of the actual session?
 For example a Bigint, or GUID, or etc?
 Can I get the living Session identifiers from PG?

try

postgres=# select pg_backend_pid();
 pg_backend_pid

  17327
(1 row)

postgres=# \x
Expanded display is on.
postgres=# select * from pg_stat_activity where procpid = pg_backend_pid();
-[ RECORD 1 
]+-
datid| 12835
datname  | postgres
procpid  | 17327
usesysid | 16384
usename  | pavel
application_name | psql
client_addr  |
client_hostname  |
client_port  | -1
backend_start| 2011-05-18 14:46:08.099399+02
xact_start   | 2011-05-18 15:08:21.5958+02
query_start  | 2011-05-18 15:08:21.5958+02
waiting  | f
current_query| select * from pg_stat_activity where procpid =
pg_backend_pid();

Regards

Pavel Stehule

 We have a little application that uses these infos which are basically
 came from another database system, and I will port this, but I don't
 know, how to do in PGSQL...
 In this app. we associated (stored) the session id to a special field
 in some tables.
 We can retreive the living session ids with a system functions.

 If a session died, these records have become irrelevant - we can
 delete them. If the session still alive, we don't touch them, only can
 read the content...

 I see adv_locks in pg, but because the quantity of locks are
 pre-determined by the server, I don't choose them.
 I better like a technic that cannot exhaust the number of persistent elements.

 Thanks:
   dd

 --
 Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
 To make changes to your subscription:
 http://www.postgresql.org/mailpref/pgsql-general


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general