The pg_typeof()
function allows you to determine the data type of anything
in Postgres.
> select pg_typeof(1);
pg_typeof
-----------
integer
(1 row)
> select pg_typeof(true);
pg_typeof
-----------
boolean
(1 row)
If you try it on an arbitrary string, it is unable to disambiguate which
string type (e.g. text
vs varchar
).
> select pg_typeof('hello');
pg_typeof
-----------
unknown
(1 row)
You just have to be a bit more specific.
> select pg_typeof('hello'::varchar);
pg_typeof
-------------------
character varying
(1 row)