Hi,
I wrote a patch for adding CORRESPONDING/CORRESPONDING BY to set operation. It is a task in the todo list. This is how the patch works: I modified transformSetOperationStmt() to get an intersection target list which is the intersection of the target lists of the left clause and right clause for a set operation statement (sostmt). The intersection target list is calculated in transformSetOperationTree() and then I modified the target lists of the larg and rarg of sostmt to make them equal to the intersection target list. Also, I also changed the target list in pstate->p_rtable in order to make it consistent with the intersection target list. I attached the scratch version of this patch to the email. I am not sure whether the method used in the patch is acceptable or not, but any suggestions are appreciated. I will add tests and other related things to the patch if the method used in this patch is acceptable. Best, Ruijia
<<attachment: CORRESPONDING.patch.zip>>