X-Git-Url: https://git.8kb.co.uk/?p=postgresql%2Fpg_jsonb_opx;a=blobdiff_plain;f=README.md;h=0eb0228397657205a3d08f5d7175aa0a25474438;hp=1073f68b6c8a69ae2a4a9113d573a24a8ab129d2;hb=HEAD;hpb=8c1743c63b561e0c49fb41be3f837eac46d54aad diff --git a/README.md b/README.md index 1073f68..0eb0228 100755 --- a/README.md +++ b/README.md @@ -1,9 +1,49 @@ jsonb_opx ========= -Test delete and concatenation operators for PostgreSQL 9.4 +Missing operators for jsonb in PostgreSQL 9.4, this may contain some errors and bad form as it's primarily just experimentation (i'm not a frequent C programmer; but everyone has to start somewhere right?). Please test that it suits your requirements before using in any production scenario. -This is purely experimentation and will contain many errors and bad form. +Provides +-------- -**DO NOT USE ON PRODUCTION SYSTEMS** +The following behave like **hstore 1.x operators**; i.e. without nested jsonb traversal +* deletion using **-** operator + * jsonb_delete(jsonb, text) + * jsonb_delete(jsonb, numeric) + * jsonb_delete(jsonb, boolean) + * jsonb_delete(jsonb, text[]) + * jsonb_delete(jsonb, numeric[]) + * jsonb_delete(jsonb, boolean[]) + * jsonb_delete(jsonb, jsonb) +* concatenation using **||** operator + * jsonb_concat(jsonb, jsonb) +* replacement using **#=** operator + * jsonb_replace(jsonb, jsonb) + +All of the above are provided with the standard extension and can be installed via CREATE EXTENSION E.g: + +```sql +CREATE EXTENSION jsonb_opx; +``` + +The following are intended to behave like **hstore 2.0 operators**; i.e. recurse into nested jsonb path. + +> As of 26/02/2015 there appears to be an effort discussed on pgsql-hackers for this type of path manipulation named jsonbx that appears to be much further ahead than my effort below. + +* deletion at chained path using **#-** operator + * jsonb_delete_path(jsonb, text[]) +* replacement at chained path using function (no operator) + * jsonb_replace_path(jsonb, text[], jsonb) + +To install this extra functionality specify version 1.1 when using CREATE EXTENSION E.g: + +```sql +CREATE EXTENSION jsonb_opx VERSION '1.1'; +``` + +Or if you have version 1.0 already installed, use ALTER EXTENSION E.g: + +```sql +ALTER EXTENSION jsonb_opx UPDATE TO '1.1'; +```