Re: speedup COPY TO for partitioned table.

Masahiko Sawada <sawada.mshk@gmail.com>

From: Masahiko Sawada <sawada.mshk@gmail.com>
To: jian he <jian.universality@gmail.com>
Cc: torikoshia <torikoshia@oss.nttdata.com>, Álvaro Herrera <alvherre@kurilemu.de>, Kirill Reshke <reshkekirill@gmail.com>, vignesh C <vignesh21@gmail.com>, David Rowley <dgrowleyml@gmail.com>, Melih Mutlu <m.melihmutlu@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-10-16T22:01:22Z
Lists: pgsql-hackers

Attachments

On Wed, Oct 15, 2025 at 7:57 PM jian he <jian.universality@gmail.com> wrote:
>
> On Thu, Oct 16, 2025 at 9:21 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> >
> > > Please check the attached v18.
> >
> > Thank you for updating the patch!
> >
> > I've reviewed the patch and here is one review comment:
> >
> >             from->inh = false;  /* apply ONLY */
> > +           if (get_rel_relkind(relid) == RELKIND_PARTITIONED_TABLE)
> > +               from->inh = true;
> >
> > It's better to check rel->rd_rel->relkind instead of calling
> > get_rel_relkind() as it checks syscache.
> >
> > I've attached a patch to fix the above and includes some cosmetic
> > changes. Please review it.
> >
>
> hi.
>
> overall looks good to me, thanks for polishing it.
>
> + * However, when copying data from a partitioned table, we don't
> + * not use "ONLY", since we need to retrieve rows from its
> + * descendant tables too.
>
> I guess here it should be
> "we don't use "ONLY"
> ?

Right, thank you for pointing it out.

> I’ve incorporated your changes into v19.

Thank you!

I think the patch is in good shape. I've slightly changed the
documentation changes and updated the commit message. I'm going to
push the attached patch, if there are no objections or further review
comments.

Regards,

--
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Support COPY TO for partitioned tables.

  2. Re-implement the ereport() macro using __VA_ARGS__.