I wrote:
> It looks like what's happening is that the result of my_from_local()
> is being stored into the table as an anonymous record value rather
> than a value of type my_timestamp. (The originating session can figure
> out what the anonymous record type is, but no other session can.)
I pushed a fix for this:
https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=24c5c711f497c995ad7b560aedd41b4d0f0f77f4
Thanks for the report!
regards, tom lane