On Fri, Jan 13, 2017 at 3:44 PM, Serge Rielau <serge@rielau.com> wrote:
> And sometimes the community DOES go its own way rather than implementing the standard. For example by rejecting the
MERGEstatement in favor of another syntax and semantic.
That's total nonsense.
MERGE isn't UPSERT, and isn't even in competition with UPSERT as a
feature. I've written reams of text explaining why this is so in
precise detail, with reference to the implementations of all other
major systems [1][2]. The general consensus is that we might one day
have both UPSERT and MERGE, just like Teradata. They really are that
different that that would be perfectly reasonable. Any application
that uses MERGE and assumes UPSERT-like guarantees should be assumed
broken. We didn't diverge from the SQL standard on a whim. This was
discussed, on and off, for over a year.
[1] https://wiki.postgresql.org/wiki/UPSERT#MERGE_disadvantages
[2] https://www.postgresql.org/message-id/CAM3SWZRP0c3g6+aJ=YYDGYAcTZg0xA8-1_FCVo5Xm7hrEL34kw@mail.gmail.com
--
Peter Geoghegan