Hi Andres, > I don't think I agree with this being a bug.
Perhaps that's not a bug especially considering the fact that the documentation describes this behavior, but in any case the fact that: ``` INSERT INTO t VALUES (1,1) ON CONFLICT (a) DO UPDATE SET b = 0; INSERT INTO t VALUES (1,2) ON CONFLICT (a) DO UPDATE SET b = 0; ``` and: ``` INSERT INTO t VALUES (1,1), (1,2) ON CONFLICT (a) DO NOTHING; `` .. both work, and: ``` INSERT INTO t VALUES (1,1), (1,2) ON CONFLICT (a) DO UPDATE SET b = 0; ``` ... doesn't is rather confusing. There is no reason why the latest query shouldn't work except for a slight complication of the code. Which seems to be a reasonable tradeoff, for me at least. > But what's the justification for erroring out in the DO NOTHING case? > > [...] > > It seems somewhat likely that a behavioural change will cause trouble for some > of the uses of DO NOTHING out there. Just to make sure we are on the same page. The patch doesn't break the current DO NOTHING behavior but rather makes DO UPDATE work the same way DO NOTHING does. -- Best regards, Aleksander Alekseev