Hi,
Nikita Degtyarev (n.degtyarev@postgrespro.ru) reported a suspicious 
behaviour of a SET SESSION AUTHORIZATION command. If you switch user in 
a session:
CREATE USER abc;
SET SESSION AUTHORIZATION abc;
command "SELECT SESSION_USER, CURRENT_USER" shows us:
  session_user | current_user
--------------+--------------
  abc          | abc
But if you launch a job:
SELECT pg_sleep(60);
and will see into the pg_stat_activity:
SELECT usename,query FROM pg_stat_activity
WHERE backend_type = 'client backend';
it tell you that this job is executing with the original user:
  usename |                   query
---------+--------------------------------------------
  andrey  | SELECT usename,query FROM pg_stat_activity+
          | WHERE backend_type = 'client backend';
  abc     | SELECT pg_sleep(60);
The deal is in missed update of PgBackendStatus after updating of 
session user.
The attached patch fixes this bug.
-- 
regards,
Andrey Lepikhov
Postgres Professional