Thread: Availability of pg_backend_pid() immediately after connection establishment

Availability of pg_backend_pid() immediately after connection establishment

From
Hari Bhaskaran
Date:
Someone in this group mentioned a while back that pg_backend_pid()
function works only after some 1/2 second after the connection has been
established.  This had something to do with the stats collector to make
its sweep every .5 seconds?.  Does anyone have more information on this?

Any help is appreciated
--
Hari

Re: Availability of pg_backend_pid() immediately after connection establishment

From
"Magnus Hagander"
Date:
> Someone in this group mentioned a while back that
> pg_backend_pid() function works only after some 1/2 second
> after the connection has been established.  This had
> something to do with the stats collector to make its sweep
> every .5 seconds?.  Does anyone have more information on this?

No, pg_backend_pid() returns MyProcPid, which is set on backend startup.

However, the different pg_stat_* views won't work until a message has
been passed down to the stats collector, that is correct.

//Magnus

"Magnus Hagander" <mha@sollentuna.net> writes:
>> Someone in this group mentioned a while back that
>> pg_backend_pid() function works only after some 1/2 second
>> after the connection has been established.

> No, pg_backend_pid() returns MyProcPid, which is set on backend startup.

> However, the different pg_stat_* views won't work until a message has
> been passed down to the stats collector, that is correct.

That is to say, in existing releases there'll be a delay before a row
for your session is visible in pg_stat_activity.  This problem will
go away in 8.2 though, because the mechanism for pg_stat_activity was
redone (the other pg_stat_* views still have a delay, but it's less
critical for them).

            regards, tom lane