Re: [POC] Fast COPY FROM command for the table with foreign partitions

Justin Pryzby <pryzby@telsasoft.com>

From: Justin Pryzby <pryzby@telsasoft.com>
To: Zhihong Yu <zyu@yugabyte.com>
Cc: tsunakawa.takay@fujitsu.com, Andrey Lepikhov <a.lepikhov@postgrespro.ru>, Amit Langote <amitlangote09@gmail.com>, tanghy.fnst@fujitsu.com, Alexey Kondratov <a.kondratov@postgrespro.ru>, Michael Paquier <michael@paquier.xyz>, Ashutosh Bapat <ashutosh.bapat@2ndquadrant.com>, Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>, Etsuro Fujita <etsuro.fujita@gmail.com>, pgsql-hackers@postgresql.org, Tomas Vondra <tomas.vondra@enterprisedb.com>, houzj.fnst@fujitsu.com
Date: 2021-03-23T03:23:22Z
Lists: pgsql-hackers
On Mon, Mar 22, 2021 at 08:18:56PM -0700, Zhihong Yu wrote:
> with data_dest_cb callback. It is used for send text representation of a
> tuple to a custom destination.
> 
> send text -> sending text

I would say "It is used to send the text representation ..."

>     struct PgFdwModifyState *aux_fmstate;   /* foreign-insert state, if
>                                              * created */
> +   CopyToState cstate; /* foreign COPY state, if used */
> 
> Since foreign COPY is optional, should cstate be a pointer ? That would be
> in line with aux_fmstate.

It's actually a pointer:
src/include/commands/copy.h:typedef struct CopyToStateData *CopyToState;

There's many data structures like this, where a structure is typedefed with a
"Data" suffix and the pointer is typedefed without the "Data"

-- 
Justin



Commits

  1. Allow batch insertion during COPY into a foreign table.

  2. postgres_fdw: Disable batch insertion when there are WCO constraints.

  3. Enforce foreign key correctly during cross-partition updates

  4. Fix permission checks on constraint violation errors on partitions.

  5. Fix compilation of uuid-ossp