Re: [Json] [apps-discuss] merge-patch in APPSA and i-json in JSON

John Cowan <cowan@mercury.ccil.org> Tue, 08 July 2014 19:06 UTC

Return-Path: <cowan@ccil.org>
X-Original-To: json@ietfa.amsl.com
Delivered-To: json@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E00921A0425; Tue, 8 Jul 2014 12:06:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.251
X-Spam-Level:
X-Spam-Status: No, score=-3.251 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.651] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Sw7UZ_cEIXxN; Tue, 8 Jul 2014 12:06:44 -0700 (PDT)
Received: from earth.ccil.org (earth.ccil.org [192.190.237.11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2C1E71A0250; Tue, 8 Jul 2014 12:06:44 -0700 (PDT)
Received: from cowan by earth.ccil.org with local (Exim 4.72) (envelope-from <cowan@ccil.org>) id 1X4aiq-0000qp-3Q; Tue, 08 Jul 2014 15:06:36 -0400
Date: Tue, 08 Jul 2014 15:06:36 -0400
From: John Cowan <cowan@mercury.ccil.org>
To: Paul Hoffman <paul.hoffman@vpnc.org>
Message-ID: <20140708190635.GD6016@mercury.ccil.org>
References: <13c1732c5d504e84b80cd82e5e8f05ab@BL2PR02MB307.namprd02.prod.outlook.com> <DE7ECD34-F035-46CC-B0B0-571039A86F3F@vpnc.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <DE7ECD34-F035-46CC-B0B0-571039A86F3F@vpnc.org>
User-Agent: Mutt/1.5.20 (2009-06-14)
Sender: John Cowan <cowan@ccil.org>
Archived-At: http://mailarchive.ietf.org/arch/msg/json/fgIZENEJ30vJ-kE95W-gcPM1bbc
Cc: "json@ietf.org" <json@ietf.org>, "apps-discuss@ietf.org" <apps-discuss@ietf.org>, Larry Masinter <masinter@adobe.com>
Subject: Re: [Json] [apps-discuss] merge-patch in APPSA and i-json in JSON
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "JavaScript Object Notation \(JSON\) WG mailing list" <json.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/json>, <mailto:json-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/json/>
List-Post: <mailto:json@ietf.org>
List-Help: <mailto:json-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/json>, <mailto:json-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Jul 2014 19:06:46 -0000

Paul Hoffman scripsit:

> > - Is merge operation defined for target JSON that isn't i-json?
> 
> Yes. The merge operation is defined for all targets, regardless of
> the targets' profile of JSON.

Actually, it isn't.  It is far from clear from
draft-ietf-appsawg-json-merge-patch-04 what to do if a key appearing in
the patch matches more than one key appearing in the target.  This has
nothing to do with I-JSON as such, but is a deficiency in the merge-patch
algorithm, the relevant part of which I reproduce here:

       for each Key/Value pair in Patch:
         if Value is null:
           if Key exists in Target:
             remove the Key/Value pair from Target
         else:
           Target[Key] = MergePatch(Target[Key], Value)

What is meant by "the Key/Value pair" if there is more than one?
Are all such pairs to be removed or mutated, or only one of them?

-- 
John Cowan          http://www.ccil.org/~cowan        cowan@ccil.org
What asininity could I have uttered that they applaud me thus?
        --Phocion, Greek orator