X-Git-Url: https://git.8kb.co.uk/?p=postgresql%2Fpg_jsonb_opx;a=blobdiff_plain;f=sql%2Fjsonb_opx--1.0--1.1.sql;fp=sql%2Fjsonb_opx--1.0--1.1.sql;h=a1eb5ad705b6bbf96ff982246cf3da089fec677d;hp=0000000000000000000000000000000000000000;hb=bf6318c60bd05043800c698a6b14f6aaa17a4824;hpb=4182f8ab210feedbd7d146aa2c6c6fa77ba4962f diff --git a/sql/jsonb_opx--1.0--1.1.sql b/sql/jsonb_opx--1.0--1.1.sql new file mode 100755 index 0000000..a1eb5ad --- /dev/null +++ b/sql/jsonb_opx--1.0--1.1.sql @@ -0,0 +1,21 @@ +\echo Use "ALTER EXTENSION jsonb_opx UPDATE TO '1.1'" to load this file. \quit + +-- + +CREATE OR REPLACE FUNCTION jsonb_delete_path(jsonb, text[]) +RETURNS jsonb + AS 'MODULE_PATHNAME', 'jsonb_delete_path' +LANGUAGE C IMMUTABLE STRICT; +COMMENT ON FUNCTION jsonb_delete_path(jsonb, text[]) IS 'follow path of keys in order supplied in array and delete end-point key value pair from jsonb'; + +DROP OPERATOR IF EXISTS #- (jsonb, text[]); +CREATE OPERATOR #- ( PROCEDURE = jsonb_delete_path, LEFTARG = jsonb, RIGHTARG = text[]); +COMMENT ON OPERATOR #- (jsonb, text[]) IS 'delete key path from left operand'; + +-- + +CREATE OR REPLACE FUNCTION jsonb_replace_path(jsonb, text[], jsonb) +RETURNS jsonb + AS 'MODULE_PATHNAME', 'jsonb_replace_path' +LANGUAGE C IMMUTABLE STRICT; +COMMENT ON FUNCTION jsonb_replace_path(jsonb, text[], jsonb) IS 'follow path of keys in order supplied in array and replace end-point key value pair with supplied jsonb';