I have put everything in one patch, against the latest git repository. The program is tested on my machine.
Thanks! I get a few compiler warnings:
analyze.c: In function ‘transformMergeStmt’: analyze.c:2476: warning: unused variable ‘lastaction’ gram.y: In function ‘base_yyparse’: gram.y:7437: warning: assignment from incompatible pointer type gram.y:7441: warning: assignment from incompatible pointer type trigger.c: In function ‘ExecBSMergeTriggers’: trigger.c:2360: warning: assignment from incompatible pointer type trigger.c: In function ‘ExecASMergeTriggers’: trigger.c:2411: warning: assignment from incompatible pointer type planner.c: In function ‘merge_action_planner’: planner.c:681: warning: assignment from incompatible pointer type var.c: In function ‘push_up_merge_action_vars’: var.c:738: warning: passing argument 1 of ‘push_up_merge_action_vars_walker’ from incompatible pointer type var.c:96: note: expected ‘struct Node *’ but argument is of type ‘struct List *’ var.c:740: warning: passing argument 1 of ‘push_up_merge_action_vars_walker’ from incompatible pointer type var.c:96: note: expected ‘struct Node *’ but argument is of type ‘struct List *’
The merge.sgml file should be in doc/src/sgml/ref, not doc/src/sgml. After moving it there, I get a few errors from compiling the docs:
openjade:ref/merge.sgml:128:55:X: reference to non-existent ID "SQL-SELECT-TITLE" openjade:ref/merge.sgml:129:55:X: reference to non-existent ID "SQL-VALUES-TITLE" openjade:ref/merge.sgml:185:42:X: reference to non-existent ID "SQL-INSERT-TITLE" openjade:ref/merge.sgml:170:42:X: reference to non-existent ID "SQL-UPDATE-TITLE"
Those can be fixed by simply removing the endterm attributes from those lines, they're not needed.
Thanks for your feedback. I fixed all the above waring bugs. Find the new patch in attachement.