Re: Speedup usages of pg_*toa() functions - Mailing list pgsql-hackers

From Andrew Gierth
Subject Re: Speedup usages of pg_*toa() functions
Date
Msg-id 874krk6ppv.fsf@news-spur.riddles.org.uk
Whole thread Raw
In response to Re: Speedup usages of pg_*toa() functions  (Ranier Vilela <ranier.vf@gmail.com>)
Responses Re: Speedup usages of pg_*toa() functions
List pgsql-hackers
>>>>> "Ranier" == Ranier Vilela <ranier.vf@gmail.com> writes:

 Ranier> Where " ends up with two copies of pg_ultoa_n inlined into it",
 Ranier> in this simplified example?

The two references to sprintf are both inlined copies of your pg_utoa.

 Ranier> (b) I call this tail cut, I believe it saves time, for sure.

You seem to have missed the point that the pg_ultoa_n / pg_ulltoa_n
functions DO NOT ADD A TRAILING NUL. Which means that pg_ltoa / pg_lltoa
can't just tail call them, since they must add the NUL after.

 Ranier> Regarding bugs:

 Ranier> (c) your version don't check size of a var, when pg_ulltoa_n
 Ranier> warning about "least MAXINT8LEN bytes."

 Ranier> So in theory, I could blow it up, by calling pg_lltoa.

No. Callers of pg_lltoa are required to provide a buffer of at least
MAXINT8LEN+1 bytes.

-- 
Andrew.



pgsql-hackers by date:

Previous
From: Ranier Vilela
Date:
Subject: Re: Speedup usages of pg_*toa() functions
Next
From: Robert Haas
Date:
Subject: Re: elog(DEBUG2 in SpinLocked section.