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)







Fri, 29 Nov 2002 01:31:47 +0900
Masaru Sugawara <rk73@sea.plala.or.jp>
Is current_user a function ?
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 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)
> 
> 
> 
> 
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
-- 
Rod Taylor <rbt@rbt.ca>


28 Nov 2002 11:34:49 -0500
Rod Taylor <rbt@rbt.ca>
Re: Is current_user a function ?
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

Thu, 28 Nov 2002 17:20:59 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: Is current_user a function ? 
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




Fri, 29 Nov 2002 21:16:23 +0900
Masaru Sugawara <rk73@sea.plala.or.jp>
Re: Is current_user a function ?