1
0
mirror of https://github.com/postgres/postgres.git synced 2025-08-28 18:48:04 +03:00

Have pg_itoa, pg_ltoa and pg_lltoa return the length of the string

Core by no means makes excessive use of these functions, but quite a large
number of those usages do require the caller to call strlen() on the
returned string.  This is quite wasteful since these functions do already
have a good idea of the length of the string, so we might as well just
have them return that.

Reviewed-by: Andrew Gierth
Discussion: https://postgr.es/m/CAApHDvrm2A5x2uHYxsqriO2cUaGcFvND%2BksC9e7Tjep0t2RK_A%40mail.gmail.com
This commit is contained in:
David Rowley
2020-06-13 12:32:00 +12:00
parent 9a7fccd9ea
commit dad75eb4a8
5 changed files with 38 additions and 25 deletions

View File

@@ -103,9 +103,10 @@ printsimple(TupleTableSlot *slot, DestReceiver *self)
{
int32 num = DatumGetInt32(value);
char str[12]; /* sign, 10 digits and '\0' */
int len;
pg_ltoa(num, str);
pq_sendcountedtext(&buf, str, strlen(str), false);
len = pg_ltoa(num, str);
pq_sendcountedtext(&buf, str, len, false);
}
break;
@@ -113,9 +114,10 @@ printsimple(TupleTableSlot *slot, DestReceiver *self)
{
int64 num = DatumGetInt64(value);
char str[MAXINT8LEN + 1];
int len;
pg_lltoa(num, str);
pq_sendcountedtext(&buf, str, strlen(str), false);
len = pg_lltoa(num, str);
pq_sendcountedtext(&buf, str, len, false);
}
break;