Truth behind show user

SQLPLUS command line provides a show user help which can print which user you are logged in as. Just learned new today that it is not hitting the DB to get the results.

Tom, who else can bring it to light. I am just 12 years down the line to have read his message.

The content points to this article

The SQLPLUS caches the username as soon as a "connection" is established and saves it for reuse. Whenever somebody issues a show user, it just returns from the cache.

Internally for the first time it will be doing a select user from dual; to set the value. Its like a global variable

Next time onwards it will simply return from its variable instead of running a query. Even if the Connection is killed, SQLPLUS returns the variable value. (This was new to me)

----Copy pasting shamelessly the example from Tom Kyte's article for my reference:
[tkyte@desktop tkyte]$ sqlplus /
SQL*Plus: Release - Production on Wed Aug 3 10:01:01 2005
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release - Production
With the Partitioning, OLAP and Data Mining options
ops$tkyte@ORA10G> @getspid
------------ ------------
8391         8389
ops$tkyte@ORA10G> !kill -9 8391
ops$tkyte@ORA10G> show user
ops$tkyte@ORA10G> select user from dual;
select user from dual
ERROR at line 1:
ORA-03113: end-of-file on communication channel
ORA-03114: not connected to ORACLE

ops$tkyte@ORA10G> show user