Re: About the function current_user - Mailing list pgsql-bugs

From Xiong He
Subject Re: About the function current_user
Date
Msg-id tencent_7EEB7D854EF5B86B3B057C63F73219FD3308@qq.com
Whole thread Raw
In response to Re: About the function current_user  (Daniel Gustafsson <daniel@yesql.se>)
Responses Re: About the function current_user  (John Naylor <john.naylor@enterprisedb.com>)
List pgsql-bugs
Thanks a lot. 
And how to understand below result? 

postgres=# select current_database();
 current_database
------------------
 postgres
(1 row)

postgres=# select current_database;
ERROR:  column "current_database" does not exist
LINE 1: select current_database;


------------------ Original ------------------
From: "Daniel Gustafsson" <daniel@yesql.se>;
Date: Mon, Mar 20, 2023 04:16 PM
To: "Pavel Stehule"<pavel.stehule@gmail.com>;
Cc: "Xiong He"<iihero@qq.com>;"pgsql-bugs"<pgsql-bugs@lists.postgresql.org>;
Subject: Re: About the function current_user

> On 20 Mar 2023, at 08:05, Pavel Stehule <pavel.stehule@gmail.com> wrote:
> po 20. 3. 2023 v 8:01 odesílatel Xiong He <iihero@qq.com <mailto:iihero@qq.com>> napsal:

> why current_user() is not recognized? 
>
> this is not real function - it is pseudo constant
>
> The real function in postgres has a record in the pg_proc table.

The syntax of current_user and current_role are mandated by the SQL
specification, we have this note in the documentation:

"current_catalog, current_role, current_schema, current_user,
session_user, and user have special syntactic status in SQL: they must
be called without trailing parentheses.  In PostgreSQL, parentheses can
optionally be used with current_schema, but not with the others."

Given that current_schema and other current_xx functions accept parenthesis
it's easy to understand the confusion though.

--
Daniel Gustafsson

pgsql-bugs by date:

Previous
From: John Naylor
Date:
Subject: Re: About the function current_user
Next
From: Uytterhoeven Patrik
Date:
Subject: Postgres common repo is missing geos310-3.10.3-1.rhel8.x86_64