MERGE, v10. I am much more comfortable with this version; I have
removed a bunch of temporary hacks and cleaned up the interactions with
table AM and executor, which is something that had been bothering me for
a while. The complete set of changes can be seen in github,
https://github.com/alvherre/postgres/commits/merge-15
The most important one is probably
https://github.com/alvherre/postgres/commit/1bc92bd3f5af8b0406c5a633a68b2f76ba5a2616
where I introduced a new struct used at executor time to pass to
ExecUpdate et al where they can install the various bits of status info
on its way out; this allowed cleanup of the function signatures, as well
as TM_FailureData which was being modified in a somewhat strange way.
I am not aware of anything of significance in terms of remaining work
for this project. The one thing I'm a bit bothered about is the fact
that we expose a lot of executor functions previously static. I am now
wondering if it would be better to move the MERGE executor support
functions into nodeModifyTable.c, which I think would mean we would not
have to expose those function prototypes.
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/