Обсуждение: JSON Patch (RFC 6902) support?

Поиск
Список
Период
Сортировка

JSON Patch (RFC 6902) support?

От
Ryan Pedela
Дата:
This is my first email to the PostgreSQL mailing lists so I hope this is the correct place. If not, please let me know.

I was wondering if it would be possible and wise to support JSON Patch?
https://tools.ietf.org/html/rfc6902

One of the problems I have as a user is how to update a portion of a JSON object efficiently. Right now I have to read the entire field from the database, update it, and then write it back. I am thinking JSON Patch might be a good way to solve this problem because it would allow partial updates and I think it could easily fit into the existing set of JSON functions such as:

// applies a JSON Patch
json_patch_apply(json, patch)

// diffs two JSON objects and produces a JSON Patch
json_patch_diff(json a, json b)

Thanks,
Ryan Pedela

Re: JSON Patch (RFC 6902) support?

От
Josh Berkus
Дата:
On 03/13/2014 09:53 AM, Ryan Pedela wrote:
> This is my first email to the PostgreSQL mailing lists so I hope this is
> the correct place. If not, please let me know.
> 
> I was wondering if it would be possible and wise to support JSON Patch?
> https://tools.ietf.org/html/rfc6902
> 
> One of the problems I have as a user is how to update a portion of a JSON
> object efficiently. Right now I have to read the entire field from the
> database, update it, and then write it back. I am thinking JSON Patch might
> be a good way to solve this problem because it would allow partial updates
> and I think it could easily fit into the existing set of JSON functions
> such as:
> 
> // applies a JSON Patch
> json_patch_apply(json, patch)
> 
> // diffs two JSON objects and produces a JSON Patch
> json_patch_diff(json a, json b)

I can't speak to the technical difficulties, but *I* would use it.

Note that on the backend Postgres is still going to re-write the entire
JSON value.  Also, we'd want both a json_patch and jsonb_patch, which
would have the same syntax but different internal plumbing.

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com



Re: JSON Patch (RFC 6902) support?

От
Andrew Dunstan
Дата:
On 03/13/2014 01:01 PM, Josh Berkus wrote:
> On 03/13/2014 09:53 AM, Ryan Pedela wrote:
>> This is my first email to the PostgreSQL mailing lists so I hope this is
>> the correct place. If not, please let me know.
>>
>> I was wondering if it would be possible and wise to support JSON Patch?
>> https://tools.ietf.org/html/rfc6902
>>
>> One of the problems I have as a user is how to update a portion of a JSON
>> object efficiently. Right now I have to read the entire field from the
>> database, update it, and then write it back. I am thinking JSON Patch might
>> be a good way to solve this problem because it would allow partial updates
>> and I think it could easily fit into the existing set of JSON functions
>> such as:
>>
>> // applies a JSON Patch
>> json_patch_apply(json, patch)
>>
>> // diffs two JSON objects and produces a JSON Patch
>> json_patch_diff(json a, json b)
> I can't speak to the technical difficulties, but *I* would use it.
>
> Note that on the backend Postgres is still going to re-write the entire
> JSON value.  Also, we'd want both a json_patch and jsonb_patch, which
> would have the same syntax but different internal plumbing.
>


Some of this will be less than trivial especially for text-format json.

But without committing myself I'll be interested to see a patch.

cheers

andrew