Fixed previous patch by calling change_varattnos_of_a_node() to fix up constraint expressions in case attribute positions don't line up.
change_varattnos_of_a_node is in tablecmds.c for inherited tables so this means making it extern. I have a feeling it probably ought to move to some file of functions for manipulating Nodes but I couldn't really find an appropriate place. At first I was going to put it in ruleutils.c but then it seems the other functions in that file go in builtins.h which would be a strange place for this I think. So in the end I left the functions in tablecmds.[ch] at least until someone more familiar with the source tree suggests another pair of files for them to be defined in.
like.patch4
Description: Binary data
-- greg
---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend