Re: Speed up lpad() and rpad() for one-byte padding strings - Mailing list pgsql-hackers

From Nathan Bossart
Subject Re: Speed up lpad() and rpad() for one-byte padding strings
Date
Msg-id arPlICNzFXv6zTbS@nathan
Whole thread
In response to Speed up lpad() and rpad() for one-byte padding strings  (Sehrope Sarkuni <sehrope@jackdb.com>)
Responses Re: Speed up lpad() and rpad() for one-byte padding strings
Re: Speed up lpad() and rpad() for one-byte padding strings
List pgsql-hackers
On Wed, Sep 23, 2026 at 10:10:09AM -0400, Sehrope Sarkuni wrote:
> lpad() and rpad() pad one character at a time, calling
> pg_mblen_range() and memcpy() once per padding char.  When the padding
> string is a single byte, e.g., lpad(x, n, '0') or rpad(x, n, ' '),
> the padding is that byte repeated, so the attached patch fills it with
> one memset().

I wonder if we could expand these gains by using SIMD whenever the vector
length is divisible by the padding string length.  My hunch is that's where
a lot of the memset() gains come from.

-- 
nathan



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: run pgindent in CI
Next
From: "Jonathan S. Katz"
Date:
Subject: Re: add list of major features to the v19 release notes