Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eAeyF-00021l-TR for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Nov 2017 16:37:28 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1eAeyF-0001bQ-G4 for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Nov 2017 16:37:27 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1eAewe-00050K-Ga for pgsql-hackers@postgresql.org; Fri, 03 Nov 2017 16:35:48 +0000 Received: from mail-pg0-x232.google.com ([2607:f8b0:400e:c05::232]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1eAewb-0002gu-Aj for pgsql-hackers@postgresql.org; Fri, 03 Nov 2017 16:35:47 +0000 Received: by mail-pg0-x232.google.com with SMTP id b192so2920412pga.2 for ; Fri, 03 Nov 2017 09:35:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bowt-ie.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=xi21jB+L8PN+xnmgetrdOBvA3lFFTnthkBGQR/zoODU=; b=J+F3qUqPd4fmCLCrBHS6mBy8xzvXI4Gdtd3Sta5IdojawnU27/BCJaE76tHPLLc8O8 T0iIWGKYW8OPzuyVwT/wHqeDQl19mF87uDUhigBomt3q51ZUO8E2nuLglRS01CcFzsdG I+3EeCON7q7U3hbnLQXhkVoX/gJ80NYbL9zCfUS2Dr9xjdFuiXahBQM/wrzdfo4+2BO7 mEPkX5+Sh/y5VlISHK3IJa+C5rcggxSTXLkEPQTjQNAiMaHsHWJn5UZCSO1b+9bzf1ym SW5XD6kVHB+gtVi2WZ5MdNHUoPdcU2B40OpBeV7GGo4dtQSr6/UsfQqAaci0BFg1u7ki O9+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=xi21jB+L8PN+xnmgetrdOBvA3lFFTnthkBGQR/zoODU=; b=gypTt9cV6ZaqiQm7Iec1dGyXCRH4y0X/z8FFkZNvQ635sDsrRMDVjY/BAzunZ0S8n/ 1zwanuYJ35izOolRz3J1Tvi9etBSanWFMdutik5CMf3S+VLz2QYszBJ56jlUmzbAxqI9 UEU7o3Z8dJNZ9VCTlbeLyjtHqTirM93VhvPK8Ilk6/vOo3gZtp0BvDbMqFR0iDgHWaTb tgEe8eITgpkeWwkXZJD8mebxk2n/Xc2eaZJNCl1MtLUtz90t2esQcJSRMdFJxhu7FqSn +XGS6rDzRr1m8jdee+Kkk1TTttBn2OJ0W9nQV7GM5Bz5DOHvaCVJyZT2E7TlAFV0a59i k4PA== X-Gm-Message-State: AMCzsaW+ilN+VXlcRYxC9SPO8AwjiyM0frGYpzRdujpx8V0yU6aTxrY9 ZL0YHHqJGt/L2Gd9uzqefVjKaA== X-Google-Smtp-Source: ABhQp+ScgfKRs49TOOXt5KGHlhKv3Nnw/N7ydlQYAS+LRCm940rUrdbqyugo5HLnsAv3AeaUToOtyA== X-Received: by 10.99.114.93 with SMTP id c29mr7750679pgn.421.1509726942681; Fri, 03 Nov 2017 09:35:42 -0700 (PDT) Received: from marmot ([162.217.72.7]) by smtp.gmail.com with ESMTPSA id v85sm11402159pfi.71.2017.11.03.09.35.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 03 Nov 2017 09:35:41 -0700 (PDT) Date: Fri, 3 Nov 2017 09:35:39 -0700 From: Peter Geoghegan To: Simon Riggs Cc: Robert Haas , Stephen Frost , Michael Paquier , PostgreSQL-development Subject: Re: MERGE SQL Statement for PG11 Message-ID: <20171103163539.GA17026@marmot> References: <20171030185511.GJ4628@tamriel.snowman.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org Simon Riggs wrote: >>> The *only* behavioural difference I have proposed would be the *lack* >>> of an ERROR in (some) concurrent cases. >> >> I think that's a big difference. Error vs. non-error is a big deal by >> itself; > >Are you saying avoiding an ERROR is a bad or good thing? Are you really asking Robert to repeat what has already been said about a dozen different ways? That's *not* the only difference. You need to see a couple of steps ahead to see further differences, as the real dilemma comes when you have to reconcile having provided the UPSERT-guarantees with cases that that doesn't map on to (which can happen in a number of different ways). I don't understand why you'll talk about just about anything but that. This is a high-level concern about the overarching design. Do you really not understand the concern at this point? >> also, the non-error case involves departing from MVCC >> semantics just as INSERT .. ON CONFLICT UPDATE does. > >Meaning what exactly? What situation occurs that a user would be concerned with? > >Please describe exactly what you mean so we get it clear. > >The concurrent behaviour for MERGE is allowed to be >implementation-specific, so we can define it any way we want. Agreed -- we can. It isn't controversial at all to say that the SQL standard has nothing to say on this question. The problem is that the semantics you argue for are ill-defined, and seem to create more problems than they solve. Why keep bringing up the SQL standard? -- Peter Geoghegan -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers