Re: Invalid name syntax on to_regrole(session_user)

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Ц <pfunk(at)mail(dot)ru>
Cc: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Invalid name syntax on to_regrole(session_user)
Date: 2020-04-14 14:04:43
Message-ID: 16503.1586873083@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

=?UTF-8?B?0KY=?= <pfunk(at)mail(dot)ru> writes:
> create role "dot.net"
> set session authorization 'dot.net';
> select to_regrole(session_user); ERROR: invalid name syntax

Well, we've got this:

regression=> select session_user;
session_user
--------------
dot.net
(1 row)

which is reasonable: that output shouldn't be quoted.
But then:

regression=> select 'dot.net'::regrole;
ERROR: invalid name syntax
LINE 1: select 'dot.net'::regrole;
^

which is also reasonable. So you need to provide the quoting if
you want to interface these.

regression=> select to_regrole(quote_ident(session_user));
to_regrole
------------
"dot.net"
(1 row)

> Is there other way (without extra type conversions) for getting oid of session_user?

select oid from pg_roles where rolname = session_user

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ц 2020-04-14 14:32:56 Re[2]: Invalid name syntax on to_regrole(session_user)
Previous Message Ц 2020-04-14 12:47:59 Invalid name syntax on to_regrole(session_user)