Close to the bottom of:
(and all previous version)
... the manual says:
> During the ensuing assignment to the local variable curtime, the PL/pgSQL interpreter casts this string to the timestamp type by calling the text_out and timestamp_in functions for the conversion.
Should most probably be "textout" instead of "text_out". See:
test=# SELECT proname FROM pg_proc
WHERE proname IN ('text_out', 'textout');
proname
---------
textout
(1 row)
"timestamp_in" seems correct, though. Those function names seem rather inconsistent: roughly half of them have the underscore, the rest doesn't. Might explain the confusion.
SELECT * FROM pg_proc
WHERE proname ~ 'out$'
AND prorettype = 'cstring'::regtype
ORDER BY proname ~ '_out$';
SELECT * FROM pg_proc
WHERE proname ~ 'in$'
AND proargtypes = ARRAY['cstring'::regtype]::oidvector
ORDER BY proname ~ '_in$';
Regards
Erwin