From: | Greg Nancarrow <gregn4422(at)gmail(dot)com> |
---|---|
To: | Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com> |
Cc: | Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Parallel INSERT (INTO ... SELECT ...) |
Date: | 2020-10-07 08:25:44 |
Message-ID: | CAJcOf-e3OXoJab27DrTXt5FHKyBtuPPWRxbsCaO2cxJLkGu91g@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Oct 7, 2020 at 12:40 AM Bharath Rupireddy
<bharath(dot)rupireddyforpostgres(at)gmail(dot)com> wrote:
> In parallel, we are not doing anything(due to the same reason
> explained in above comment) to find whether there is a foreign
> partition or not while deciding to go with parallel/non-parallel copy,
> we are just throwing an error during the first tuple insertion into
> the partition.
>
> errmsg("cannot perform PARALLEL COPY if partition has BEFORE/INSTEAD
> OF triggers, or if the partition is foreign partition"),
> errhint("Try COPY without PARALLEL option")));
>
I'm wondering whether code similar to the following can safely be used
to detect a foreign partition:
if (rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE)
{
int i;
PartitionDesc pd = RelationGetPartitionDesc(rel);
for (i = 0; i < pd->nparts; i++)
{
if (get_rel_relkind(pd->oids[i]) == RELKIND_FOREIGN_TABLE)
{
table_close(rel, NoLock);
return false;
}
}
}
Thoughts?
Regards,
Greg Nancarrow
Fujitsu Australia
From | Date | Subject | |
---|---|---|---|
Next Message | Andy Fan | 2020-10-07 08:39:26 | Re: Improve choose_custom_plan for initial partition prune case |
Previous Message | Michael Paquier | 2020-10-07 08:18:52 | Re: [patch] Fix checksum verification in base backups for zero page headers |