mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-30 00:04:49 -04: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
							
								
									870d89608e
								
							
						
					
					
						commit
						cfbecf8100
					
				| @ -2709,7 +2709,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, true); | ||||
| 
 | ||||
| 				if (useHeapMultiInsert) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user