Function name "text_out" should be "textout"

2020-07-04 Thread Erwin Brandstetter
Close to the bottom of:
https://www.postgresql.org/docs/devel/plpgsql-implementation.html
(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$'
ANDprorettype = 'cstring'::regtype
ORDER  BY proname ~ '_out$';

SELECT * FROM pg_proc
WHERE  proname ~ 'in$'
ANDproargtypes = ARRAY['cstring'::regtype]::oidvector
ORDER  BY proname ~ '_in$';

Regards
Erwin


Re: Function name "text_out" should be "textout"

2020-07-04 Thread Michael Paquier
On Sat, Jul 04, 2020 at 09:59:22AM +0200, Erwin Brandstetter wrote:
> Close to the bottom of:
> https://www.postgresql.org/docs/devel/plpgsql-implementation.html
> (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:

The doc is wrong and you are right, good catch.  In the case of the
function logfunc2, the plpgsql parser assigns the value from 'now' by
using textout, then timestamp_in.  I'll go fix this one, tomorrow if
possible, but most likely the day after.  This error has existed for
22 years, since da63386 to be exact.
--
Michael


signature.asc
Description: PGP signature