Re: cannot read pg_class without having selected a database / is this a bug? - Mailing list pgsql-hackers

From Tomas Vondra
Subject Re: cannot read pg_class without having selected a database / is this a bug?
Date
Msg-id 4EDAAA7C.9090501@fuzzy.cz
Whole thread Raw
In response to Re: cannot read pg_class without having selected a database / is this a bug?  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: cannot read pg_class without having selected a database / is this a bug?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On 3.12.2011 23:37, Robert Haas wrote:
> 2011/12/3 Tomas Vondra <tv@fuzzy.cz>:
>> psql: FATAL:  cannot read pg_class without having selected a database
>>
>> I've found this happens because the extension defines a client auth hook
>> that reads pg_stat_activity. The really interesting thing is that this
>> happens only when I start several backends 'at the same time' right
>> after the cluster is started. From that time, everything works just fine.
> 
> I'm surprised this ever works.  To read pg_stat_activity, you need a
> relcache entry for it.  And how will you build one without selecting a
> database?

What do you mean by selecting a database?

I do select a database when executing a psql, but I guess you mean
something that initializes the relcache entry and that's probably
executed after the auth hook.

That might explain why it fails at first and then works just fine,
although it's a bit strange. Wouldn't that mean you can't access any
catalogs from the auth hook?

Tomas


pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: cannot read pg_class without having selected a database / is this a bug?
Next
From: Andrew Dunstan
Date:
Subject: Re: [PATCH] PostgreSQL fails to build with 32bit MinGW-w64