mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Simplify and encapsulate tuple routing support code.
Instead of having ExecSetupPartitionTupleRouting return multiple out parameters, have it return a pointer to a structure containing all of those different things. Also, provide and use a cleanup function, ExecCleanupTupleRouting, instead of cleaning up all of the resources allocated by ExecSetupPartitionTupleRouting individually. Amit Khandekar, reviewed by Amit Langote, David Rowley, and me Discussion: http://postgr.es/m/CAJ3gD9fWfxgKC+PfJZF3hkgAcNOy-LpfPxVYitDEXKHjeieWQQ@mail.gmail.com
This commit is contained in:
		@@ -985,15 +985,8 @@ typedef struct ModifyTableState
 | 
			
		||||
	TupleTableSlot *mt_existing;	/* slot to store existing target tuple in */
 | 
			
		||||
	List	   *mt_excludedtlist;	/* the excluded pseudo relation's tlist  */
 | 
			
		||||
	TupleTableSlot *mt_conflproj;	/* CONFLICT ... SET ... projection target */
 | 
			
		||||
	struct PartitionDispatchData **mt_partition_dispatch_info;
 | 
			
		||||
	struct PartitionTupleRouting *mt_partition_tuple_routing;
 | 
			
		||||
	/* Tuple-routing support info */
 | 
			
		||||
	int			mt_num_dispatch;	/* Number of entries in the above array */
 | 
			
		||||
	int			mt_num_partitions;	/* Number of members in the following
 | 
			
		||||
									 * arrays */
 | 
			
		||||
	ResultRelInfo **mt_partitions;	/* Per partition result relation pointers */
 | 
			
		||||
	TupleConversionMap **mt_partition_tupconv_maps;
 | 
			
		||||
	/* Per partition tuple conversion map */
 | 
			
		||||
	TupleTableSlot *mt_partition_tuple_slot;
 | 
			
		||||
	struct TransitionCaptureState *mt_transition_capture;
 | 
			
		||||
	/* controls transition table population for specified operation */
 | 
			
		||||
	struct TransitionCaptureState *mt_oc_transition_capture;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user