On Tue, Dec 21, 2010 at 6:24 PM, Robert Haas <robertmh...@gmail.com> wrote:

> On Mon, Dec 20, 2010 at 1:10 PM, Noah Misch <n...@leadboat.com> wrote:
> > When the caller knows the smaller string length, memcmp and strncmp are
> > functionally equivalent.  Since memcmp need not watch each byte for a
> NULL
> > terminator, it often compares a CPU word at a time for better
> performance.  The
> > attached patch changes use of strncmp to memcmp where we have the length
> of the
> > shorter string.  I was most interested in the varlena.c instances, but I
> tried
> > to find all applicable call sites.  To benchmark it, I used the attached
> > "bench-texteq.sql".  This patch improved my 5-run average timing of the
> SELECT
> > from 65.8s to 56.9s, a 13% improvement.  I can't think of a case where
> the
> > change should be pessimal.
>
> This is a good idea.  I will check this over and commit it.
>

Doesn't this risk accessing bytes beyond the shorter string? Look at the
warning above the StrNCpy(), for example.

Regards,
-- 
gurjeet.singh
@ EnterpriseDB - The Enterprise Postgres Company
http://www.EnterpriseDB.com

singh.gurj...@{ gmail | yahoo }.com
Twitter/Skype: singh_gurjeet

Mail sent from my BlackLaptop device

Reply via email to