On Fri, Feb 28, 2025 at 12:14 PM Andrew Dunstan <and...@dunslane.net> wrote: > > > On 2025-02-28 Fr 2:55 PM, Masahiko Sawada wrote: > > On Fri, Feb 28, 2025 at 11:47 AM Andrew Dunstan <and...@dunslane.net> wrote: > >> > >> On 2025-02-28 Fr 1:31 PM, Masahiko Sawada wrote: > >> > >> Refactor COPY FROM to use format callback functions. > >> > >> This commit introduces a new CopyFromRoutine struct, which is a set of > >> callback routines to read tuples in a specific format. It also makes > >> COPY FROM with the existing formats (text, CSV, and binary) utilize > >> these format callbacks. > >> > >> This change is a preliminary step towards making the COPY FROM command > >> extensible in terms of input formats. > >> > >> Similar to 2e4127b6d2d, this refactoring contributes to a performance > >> improvement by reducing the number of "if" branches that need to be > >> checked on a per-row basis when sending field representations in text > >> or CSV mode. The performance benchmark results showed ~5% performance > >> gain in text or CSV mode. > >> > >> Author: Sutou Kouhei <k...@clear-code.com> > >> Reviewed-by: Masahiko Sawada <sawada.m...@gmail.com> > >> Reviewed-by: Michael Paquier <mich...@paquier.xyz> > >> Reviewed-by: Andres Freund <and...@anarazel.de> > >> Reviewed-by: Tomas Vondra <tomas.von...@enterprisedb.com> > >> Reviewed-by: Junwang Zhao <zhjw...@gmail.com> > >> Discussion: > >> https://postgr.es/m/20231204.153548.2126325458835528809....@clear-code.com > >> > >> > >> > >> This patch has completely broken the file_textarray fdw, which uses > >> NextCopyFromRawFields(). Removing that from API is not a good thing. > >> > > Thank you for pointing it out. > > > > I've just posted my analysis[1] and am planning to revive that API > > (Sutou-san already proposed an idea). Could you please check if the > > idea would work for file_text_array_fdw? > > > > Looks OK, I think. You could even use the Internal function further down > in the file and avoid a function call.
Right. I've attached the updated patch. Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com
0001-Re-export-NextCopyFromRawFields-to-copy.h.patch
Description: Binary data