mirror of
https://github.com/postgres/postgres.git
synced 2025-05-02 11:44:50 +03:00
Enforce child constraints during COPY TO a partitioned table.
The previous coding inadvertently checked the constraints for the partitioned table rather than the target partition, which could lead to data in a partition that fails to satisfy some constraint on that partition. This problem seems to date back to when table partitioning was introduced; prior to that, there was only one target table for a COPY, so the problem didn't occur, and the code just didn't get updated. Etsuro Fujita, reviewed by Amit Langote and Ashutosh Bapat Discussion: https://postgr.es/message-id/5ABA4074.1090500%40lab.ntt.co.jp
This commit is contained in:
parent
c00c4c57b0
commit
29ab1e24a6
@ -2744,7 +2744,8 @@ CopyFrom(CopyState cstate)
|
||||
check_partition_constr = false;
|
||||
|
||||
/* Check the constraints of the tuple */
|
||||
if (cstate->rel->rd_att->constr || check_partition_constr)
|
||||
if (resultRelInfo->ri_RelationDesc->rd_att->constr ||
|
||||
check_partition_constr)
|
||||
ExecConstraints(resultRelInfo, slot, estate);
|
||||
|
||||
if (useHeapMultiInsert)
|
||||
|
Loading…
x
Reference in New Issue
Block a user