Re: UPSERT wiki page, and SQL MERGE syntax
| От | Peter Geoghegan | 
|---|---|
| Тема | Re: UPSERT wiki page, and SQL MERGE syntax | 
| Дата | |
| Msg-id | CAM3SWZSXQw_11GTrJA4znMpCwOW-OG1XBUF1YLn584wKi_jQow@mail.gmail.com обсуждение исходный текст  | 
		
| Ответ на | Re: UPSERT wiki page, and SQL MERGE syntax (Marti Raudsepp <marti@juffo.org>) | 
| Ответы | 
                	
            		Re: UPSERT wiki page, and SQL MERGE syntax
            		
            		 | 
		
| Список | pgsql-hackers | 
On Wed, Oct 8, 2014 at 6:12 PM, Marti Raudsepp <marti@juffo.org> wrote: > Oh, one more consideration: I believe you will run into the same issue > if you want to implement BEFORE UPDATE triggers in any form. Skipping > BEFORE UPDATE entirely seems to violate POLA. Good thing that the patch doesn't do that, then. I clearly documented this in a few places, including: http://postgres-benchmarks.s3-website-us-east-1.amazonaws.com/on-conflict-docs/trigger-definition.html > It's common for applications to e.g. use triggers to keep track of > latest modified time for a row. With your proposal, every query needs > to include logic for that to work. Wrong. >>> If you don't see any reasons why it can't be done, these benefits seem >>> clear to me. I think the tradeoffs at least warrant wider discussion. >> >> I don't. That's very surprising. One day, it will fail unexpectedly. >> As proposed, the way BEFORE INSERT triggers fire almost forces users >> to consider the issues up-front. > > Not necessarily "up-front", as proposed it causes existing triggers to > change behavior when users adopt the upsert feature. And that adoption > may even be transparent to the user due to ORM magic. > > There are potential surprises with both approaches. When you make the slightest effort to understand what my approach is, I might take your remarks seriously. >> Note that the CONFLICTING() behavior with respect to BEFORE INSERT >> triggers work's the same as MySQL's "INSERT ON DUPLICATE KEY UPDATE >> foo = VALUES(foo)" thing. There was agreement that that was the right >> behavior, it seemed. > > MySQL gets away with lots of things, they have several other caveats > with triggers. I don't think it's a good example to follow wrt trigger > behavior. No true Scotsman. -- Peter Geoghegan
В списке pgsql-hackers по дате отправления: