Обсуждение: pg_get_databasebyid(oid)

Поиск
Список
Период
Сортировка

pg_get_databasebyid(oid)

От
Sergei Kornilov
Дата:
Hello
We already have function pg_get_userbyid(oid) with lookup in pg_authid catalog. My collegue ask me can we add similar
functionpg_get_databasebyid(oid) with lookup in pg_databases.
 
It is simple function to get a database name by oid and fallback to 'unknown (OID=n)' if missing.

The proposed patch is attached. Currently I missed the tests - I doubt which file in src/test/regress/sql/ is the most
suitable.pg_get_userbyid is called from privileges.sql only.
 

regards, Sergei
Вложения

Re: pg_get_databasebyid(oid)

От
Ibrar Ahmed
Дата:


On Wed, Aug 28, 2019 at 5:38 PM Sergei Kornilov <sk@zsrv.org> wrote:
Hello
We already have function pg_get_userbyid(oid) with lookup in pg_authid catalog. My collegue ask me can we add similar function pg_get_databasebyid(oid) with lookup in pg_databases.
It is simple function to get a database name by oid and fallback to 'unknown (OID=n)' if missing.

The proposed patch is attached. Currently I missed the tests - I doubt which file in src/test/regress/sql/ is the most suitable. pg_get_userbyid is called from privileges.sql only.

regards, Sergei

Please add that to commitfest.
 

--
Ibrar Ahmed

Re: pg_get_databasebyid(oid)

От
Sergei Kornilov
Дата:
> Please add that to commitfest.

Done: https://commitfest.postgresql.org/24/2261/

regards, Sergei



Re: pg_get_databasebyid(oid)

От
Ibrar Ahmed
Дата:
On Wed, Aug 28, 2019 at 6:05 PM Sergei Kornilov <sk@zsrv.org> wrote:
> Please add that to commitfest.

Done: https://commitfest.postgresql.org/24/2261/

regards, Sergei
Hi,

I have checked the code, the function "pg_get_userbyid" is used in many places in code. I am just curious why we need that  "pg_get_databasebyid" function. Is there a need for this function for the user?


--
Ibrar Ahmed

Re: pg_get_databasebyid(oid)

От
Sergei Kornilov
Дата:
Hello

> Is there a need for this function for the user?

This was feature request from user. I got such comment:

This function is useful when working with pg_stat_statements. For obtaining a databаse name for particular query you
needto join pg_database relation, but for obtaining an username you just need pg_get_userbyid(). So it will be useful
notto join extra relation and get a database name using the similar function - pg_get_databasebyid().
 

regards, Sergei



Re: pg_get_databasebyid(oid)

От
Ibrar Ahmed
Дата:


On Thu, Aug 29, 2019 at 3:16 PM Sergei Kornilov <sk@zsrv.org> wrote:
Hello

> Is there a need for this function for the user?

This was feature request from user. I got such comment:

This function is useful when working with pg_stat_statements. For obtaining a databаse name for particular query you need to join pg_database relation, but for obtaining an username you just need pg_get_userbyid(). So it will be useful not to join extra relation and get a database name using the similar function - pg_get_databasebyid().

regards, Sergei

Hi,
I think its a user request and don't require to be in the core of PostgreSQL.  
A simple SQL function can fulfill the requirement of the user.

CREATE OR REPLACE FUNCTION pg_get_databasebyid(dboid integer) RETURNS name AS $$

    SELECT datname from pg_database WHERE oid = dboid;

$$ LANGUAGE SQL;

--
Ibrar Ahmed

Re: pg_get_databasebyid(oid)

От
Michael Paquier
Дата:
On Thu, Aug 29, 2019 at 03:47:40PM +0500, Ibrar Ahmed wrote:
> I think its a user request and don't require to be in the core of
> PostgreSQL.
> A simple SQL function can fulfill the requirement of the user.
>
> CREATE OR REPLACE FUNCTION pg_get_databasebyid(dboid integer) RETURNS name
> AS $$
>
>     SELECT datname from pg_database WHERE oid = dboid;
> $$ LANGUAGE SQL;

Indeed, I think that we can drop the patch.  FWIW, I find the
semantics of pg_get_userbyid() horrible when it comes to return a
result for a non-existing user with its own way of defining how this
information should show up.  Returning NULL would be more natural, so
I don't think that we should make more functions behave the same way.
--
Michael

Вложения

Re: pg_get_databasebyid(oid)

От
Sergei Kornilov
Дата:
Hello

Thank you for attention! I marked CF entry as returned with feedback.

regards, Sergei