Remove the new UPSERT command tag and use INSERT instead.
Andres Freund <andres@anarazel.de>
Remove the new UPSERT command tag and use INSERT instead. Previously, INSERT with ON CONFLICT DO UPDATE specified used a new command tag -- UPSERT. It was introduced out of concern that INSERT as a command tag would be a misrepresentation for ON CONFLICT DO UPDATE, as some affected rows may actually have been updated. Alvaro Herrera noticed that the implementation of that new command tag was incomplete; in subsequent discussion we concluded that having it doesn't provide benefits that are in line with the compatibility breaks it requires. Catversion bump due to the removal of PlannedStmt->isUpsert. Author: Peter Geoghegan Discussion: 20150520215816.GI5885@postgresql.org
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/protocol.sgml | modified | +3 −10 |
| doc/src/sgml/ref/insert.sgml | modified | +7 −14 |
| src/backend/nodes/copyfuncs.c | modified | +0 −1 |
| src/backend/nodes/outfuncs.c | modified | +0 −1 |
| src/backend/optimizer/plan/planner.c | modified | +0 −2 |
| src/backend/tcop/pquery.c | modified | +3 −14 |
| src/bin/psql/common.c | modified | +1 −4 |
| src/include/catalog/catversion.h | modified | +1 −1 |
| src/include/nodes/plannodes.h | modified | +0 −2 |