On Mon, Jan 18, 2021 at 1:16 PM japin <japi...@hotmail.com> wrote:
>
>
> Hi,
>
> I find that the outputstr variable in logicalrep_write_tuple() only use in
> `else` branch, I think we can narrow the scope, just like variable outputbytes
> in `if` branch (for more readable).
>
>         /*
>          * Send in binary if requested and type has suitable send function.
>          */
>         if (binary && OidIsValid(typclass->typsend))
>         {
>             bytea      *outputbytes;
>             int         len;
>
>             pq_sendbyte(out, LOGICALREP_COLUMN_BINARY);
>             outputbytes = OidSendFunctionCall(typclass->typsend, values[i]);
>             len = VARSIZE(outputbytes) - VARHDRSZ;
>             pq_sendint(out, len, 4);    /* length */
>             pq_sendbytes(out, VARDATA(outputbytes), len);   /* data */
>             pfree(outputbytes);
>         }
>         else
>         {
>             pq_sendbyte(out, LOGICALREP_COLUMN_TEXT);
>             outputstr = OidOutputFunctionCall(typclass->typoutput, values[i]);
>             pq_sendcountedtext(out, outputstr, strlen(outputstr), false);
>             pfree(outputstr);
>         }
>
> Attached is a samll patch to fix it.

+1. Binary mode uses block level variable outputbytes, so making
outputstr block level is fine IMO.

Patch basically looks good to me, but it doesn't apply on my system.
Looks like it's not created with git commit. Please create the patch
with git commit command.

git apply 
/mnt/hgfs/Shared/narrow-the-scope-of-the-variable-in-logicalrep_write_tuple.patch
error: corrupt patch at line 10

With Regards,
Bharath Rupireddy.
EnterpriseDB: http://www.enterprisedb.com


Reply via email to