JSON Patch (RFC 6902) support?

Started by Ryan Pedelaalmost 12 years ago3 messages
#1Ryan Pedela
rpedela@datalanche.com

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

#2Josh Berkus
josh@agliodbs.com
In reply to: Ryan Pedela (#1)
Re: JSON Patch (RFC 6902) support?

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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#3Andrew Dunstan
andrew@dunslane.net
In reply to: Josh Berkus (#2)
Re: JSON Patch (RFC 6902) support?

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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers