Re: speedup COPY TO for partitioned table.
От | jian he |
---|---|
Тема | Re: speedup COPY TO for partitioned table. |
Дата | |
Msg-id | CACJufxHcuL_bUFiXRayDc4KjqiD=mRhhwg1ENu17+OW-yTgXhg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: speedup COPY TO for partitioned table. (vignesh C <vignesh21@gmail.com>) |
Ответы |
Re: speedup COPY TO for partitioned table.
|
Список | pgsql-hackers |
On Fri, Mar 28, 2025 at 9:03 PM vignesh C <vignesh21@gmail.com> wrote: > > On Fri, 28 Mar 2025 at 08:39, jian he <jian.universality@gmail.com> wrote: > > > > hi. > > > > I made a mistake. > > The regress test sql file should have a new line at the end of the file. > > Couple of suggestions: > 1) Can you add some comments here, this is the only code that is > different from the regular table handling code: > + scan_tupdesc = RelationGetDescr(scan_rel); > + map = build_attrmap_by_name_if_req(tupDesc, > scan_tupdesc, false); > I have added the following comments around build_attrmap_by_name_if_req. /* * partition's rowtype might differ from the root table's. We must * convert it back to the root table's rowtype as we are export * partitioned table data here. */ > 2) You can see if you can try to make a function add call it from both > the partitioned table and regular table case, that way you could > reduce the duplicate code: > + while (table_scan_getnextslot(scandesc, > ForwardScanDirection, slot)) > + { > + CHECK_FOR_INTERRUPTS(); > + > + /* Deconstruct the tuple ... */ > + if (map != NULL) > + { > + original_slot = slot; > + root_slot = > MakeSingleTupleTableSlot(tupDesc, &TTSOpsBufferHeapTuple); > + slot = > execute_attr_map_slot(map, slot, root_slot); > + } > + else > + slot_getallattrs(slot); > + > + /* Format and send the data */ > + CopyOneRowTo(cstate, slot); > + > + > pgstat_progress_update_param(PROGRESS_COPY_TUPLES_PROCESSED, > + > ++processed); > + > + if (original_slot != NULL) > + > ExecDropSingleTupleTableSlot(original_slot); > + }; > I consolidated it into a new function: CopyThisRelTo.
Вложения
В списке pgsql-hackers по дате отправления: