Is current_user a function ?
Hi,
As for some current_*** functions, "select current_user;" seems to
work, but "select current_user();" doesn't . Though current_user is
defined as one of functions, why does such an error occur ?
renew=# select current_user();
ERROR: parser: parse error at or near "(" at character 20
Regards,
Masaru Sugawara
renew=# \df
List of functions
Result data type | Schema | Name | Argument data types
---------------------+------------+-----------------------+-----------
...
name | pg_catalog | current_database |
name | pg_catalog | current_schema |
name[] | pg_catalog | current_schemas | boolean
text | pg_catalog | current_setting | text
name | pg_catalog | current_user |
...
renew=# select current_user();
ERROR: parser: parse error at or near "(" at character 20
renew=# select current_database();
current_database
------------------
renew
(1 row)
renew=# select current_schema();
current_schema
----------------
public
(1 row)
renew=# select current_schema(true);
current_schemas
---------------------
{pg_catalog,postgres,public}
(1 row)
renew=# select current_schema(false);
current_schemas
---------------------
{postgres,public}
(1 row)
renew=# select current_setting('search_path');
current_setting
-----------------
$user,public
(1 row)
Force the system to use it as a function.
select "current_user"();
On Thu, 2002-11-28 at 11:31, Masaru Sugawara wrote:
Hi,
As for some current_*** functions, "select current_user;" seems to
work, but "select current_user();" doesn't . Though current_user is
defined as one of functions, why does such an error occur ?renew=# select current_user();
ERROR: parser: parse error at or near "(" at character 20Regards,
Masaru Sugawararenew=# \df
List of functions
Result data type | Schema | Name | Argument data types
---------------------+------------+-----------------------+-----------
...
name | pg_catalog | current_database |
name | pg_catalog | current_schema |
name[] | pg_catalog | current_schemas | boolean
text | pg_catalog | current_setting | text
name | pg_catalog | current_user |
...renew=# select current_user();
ERROR: parser: parse error at or near "(" at character 20renew=# select current_database();
current_database
------------------
renew
(1 row)renew=# select current_schema();
current_schema
----------------
public
(1 row)renew=# select current_schema(true);
current_schemas
---------------------
{pg_catalog,postgres,public}
(1 row)renew=# select current_schema(false);
current_schemas
---------------------
{postgres,public}
(1 row)renew=# select current_setting('search_path');
current_setting
-----------------
$user,public
(1 row)---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
--
Rod Taylor <rbt@rbt.ca>
Masaru Sugawara <rk73@sea.plala.or.jp> writes:
As for some current_*** functions, "select current_user;" seems to
work, but "select current_user();" doesn't .
Complain to the SQL spec authors --- they mandated this peculiar keyword
syntax for what is really a function call.
regards, tom lane
On 28 Nov 2002 11:34:49 -0500
Rod Taylor <rbt@rbt.ca> wrote:
Force the system to use it as a function.
select "current_user"();
On Thu, 28 Nov 2002 17:20:59 -0500
Tom Lane <tgl@sss.pgh.pa.us> wrote:
As for some current_*** functions, "select current_user;" seems to
work, but "select current_user();" doesn't .Complain to the SQL spec authors --- they mandated this peculiar keyword
syntax for what is really a function call.
Since current_user() can be used in 7.2, I have thought it would work in 7.3 too.
I now understand it doesn't work any more -- as well, session_user(), user(),
current_date(), current_time(), current_timestamp() and etc.
Thank you, Rod and Tom.
Regards,
Masaru Sugawara