When you do this query:
SET SEARCH_PATH TO pg_catalog;
SELECT castsource::pg_catalog.regtype AS castsource,
casttarget::pg_catalog.regtype AS casttarget,
castfunc::pg_catalog.regprocedure AS castfunc,
castfunc::pg_catalog.regproc AS castfunc2 FROM pg_catalog.pg_cast ORDER
BY 1, 2;
Only regproc adds the unnecessary pg_catalog. qualification, why is that?
Results:
-[ RECORD 1 ]----------------------------------------
castsource | "char"
casttarget | text
castfunc | text("char")
castfunc2 | pg_catalog.text
-[ RECORD 2 ]----------------------------------------
castsource | "char"
casttarget | character
castfunc | bpchar("char")
castfunc2 | pg_catalog.bpchar
-[ RECORD 3 ]----------------------------------------
castsource | name
casttarget | text
castfunc | text(name)
castfunc2 | pg_catalog.text
-[ RECORD 4 ]----------------------------------------
castsource | name
casttarget | character
castfunc | bpchar(name)
castfunc2 | pg_catalog.bpchar
-[ RECORD 5 ]----------------------------------------
castsource | name
casttarget | character varying
castfunc | "varchar"(name)
castfunc2 | pg_catalog."varchar"
-[ RECORD 6 ]----------------------------------------
castsource | bigint
casttarget | smallint
castfunc | int2(bigint)
castfunc2 | pg_catalog.int2
-[ RECORD 7 ]----------------------------------------
castsource | bigint
casttarget | integer
castfunc | int4(bigint)
castfunc2 | pg_catalog.int4
...