Use strchr instead of strstr for single-char lookups

Compilers such as gcc and clang seem to perform this rewrite
automatically when the lookup string is known at compile-time to contain
a single character.  The MSVC compiler does not seem apply the same
optimization, and the code being adjusted here is within an #ifdef WIN32,
so it seems worth adjusting this with the assumption that strchr() will be
slightly more performant.

There are a couple more instances in contrib/fuzzystrmatch that this
commit could also have adjusted.  After some discussion, we deemed those
not important enough to bother with.

Author: Dmitry Mityugov <d.mityugov@postgrespro.ru>
Reviewed-by: Corey Huinker <corey.huinker@gmail.com>
Reviewed-by: David Rowley <drowleyml@gmail.com>
Discussion: https://postgr.es/m/9c1beea6c7a5e9fb6677f26620f1f257%40postgrespro.ru
This commit is contained in:
David Rowley
2025-07-23 12:02:55 +12:00
parent a6eabec680
commit 039f7ee0fe

View File

@ -73,7 +73,7 @@ pg_mkdir_p(char *path, int omode)
if (p[0] == '/' && p[1] == '/')
{
/* network drive */
p = strstr(p + 2, "/");
p = strchr(p + 2, '/');
if (p == NULL)
{
errno = EINVAL;