On Wed, Dec 6, 2023 at 3:28 PM Sutou Kouhei <k...@clear-code.com> wrote: > > Hi, > > In <CAEG8a3K9dE2gt3+K+h=dwtqmenr84aeyuys+cty3sr3laed...@mail.gmail.com> > "Re: Make COPY format extendable: Extract COPY TO format implementations" > on Wed, 6 Dec 2023 15:11:34 +0800, > Junwang Zhao <zhjw...@gmail.com> wrote: > > > For the extra curly braces, I mean the following code block in > > CopyToFormatBinaryStart: > > > > + { <-- I thought this is useless? > > + /* Generate header for a binary copy */ > > + int32 tmp; > > + > > + /* Signature */ > > + CopySendData(cstate, BinarySignature, 11); > > + /* Flags field */ > > + tmp = 0; > > + CopySendInt32(cstate, tmp); > > + /* No header extension */ > > + tmp = 0; > > + CopySendInt32(cstate, tmp); > > + } > > Oh, I see. I've removed and attach the v3 patch. In general, > I don't change variable name and so on in this patch. I just > move codes in this patch. But I also removed the "tmp" > variable for this case because I think that the name isn't > suitable for larger scope. (I think that "tmp" is acceptable > in a small scope like the above code.) > > New code: > > /* Generate header for a binary copy */ > /* Signature */ > CopySendData(cstate, BinarySignature, 11); > /* Flags field */ > CopySendInt32(cstate, 0); > /* No header extension */ > CopySendInt32(cstate, 0); > > > Thanks, > -- > kou
Hi Kou, I read the thread[1] you posted and I think Andres's suggestion sounds great. Should we extract both *copy to* and *copy from* for the first step, in that case we can add the pg_copy_handler catalog smoothly later. Attached V4 adds 'extract copy from' and it passed the cirrus ci, please take a look. I added a hook *copy_from_end* but this might be removed later if not used. [1]: https://www.postgresql.org/message-id/20180211211235.5x3jywe5z3lkgcsr%40alap3.anarazel.de -- Regards Junwang Zhao
v4-0001-Extract-COPY-handlers.patch
Description: Binary data