Remove useless pstrdups in untransformRelOptions

The two strings are already a single palloc'd chunk, not freed; there's
no reason to allocate separate copies that have the same lifetime.

This code is only called in short-lived memory contexts (except in some
cases in TopTransactionContext, which is still short-lived enough not to
really matter), and typically only for short arrays, so the memory or
computation saved is likely negligible.  However, let's fix it to avoid
leaving a bad example of code to copy.  This is the only place I could
find where we're doing this with makeDefElem().

Reported-by: Junwang Zhao <zhjwpku@gmail.com>
Discussion: https://postgr.es/m/20220909142050.3vv2hjekppk265dd@alvherre.pgsql
This commit is contained in:
Alvaro Herrera 2022-09-13 11:59:31 +02:00
parent fcf7b3a9d4
commit 6710e83a67
No known key found for this signature in database
GPG Key ID: 1C20ACB9D5C564AE

View File

@ -1357,9 +1357,9 @@ untransformRelOptions(Datum options)
if (p)
{
*p++ = '\0';
val = (Node *) makeString(pstrdup(p));
val = (Node *) makeString(p);
}
result = lappend(result, makeDefElem(pstrdup(s), val, -1));
result = lappend(result, makeDefElem(s, val, -1));
}
return result;