pgsql: Use appendStringInfoSpaces in more places - Mailing list pgsql-committers

From David Rowley
Subject pgsql: Use appendStringInfoSpaces in more places
Date
Msg-id E1pIewh-004X6K-JU@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Use appendStringInfoSpaces in more places

This adjusts a few places which were appending a string constant
containing spaces onto a StringInfo.  We have appendStringInfoSpaces for
that job, so let's use that instead.

For the change to jsonb.c's add_indent() function, appendStringInfoString
was being called inside a loop to append 4 spaces on each loop.  This
meant that enlargeStringInfo would get called once per loop.  Here it
should be much more efficient to get rid of the loop and just calculate
the number of spaces with "level * 4" and just append all the spaces in
one go.

Here we additionally adjust the appendStringInfoSpaces function so it
makes use of memset rather than a while loop to apply the required spaces
to the StringInfo.  One of the problems with the while loop was that it
was incrementing one variable and decrementing another variable once per
loop.  That's more work than what's required to get the job done.  We may
as well use memset for this rather than trying to optimize the existing
loop.  Some testing has shown memset is faster even for very small sizes.

Discussion: https://postgr.es/m/CAApHDvp_rKkvwudBKgBHniNRg67bzXVjyvVKfX0G2zS967K43A@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/9f1ca6ce6596f1f77adc323769f2f8303ddad14f

Modified Files
--------------
src/backend/commands/explain.c | 2 +-
src/backend/utils/adt/jsonb.c  | 5 +----
src/common/stringinfo.c        | 4 ++--
3 files changed, 4 insertions(+), 7 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Improve comment about GetWALAvailability's WALAVAIL_REMOVED code
Next
From: Tom Lane
Date:
Subject: pgsql: Avoid harmless warning from pg_dump --if-exists mode.