X-Git-Url: https://git.8kb.co.uk/?p=postgresql%2Fpg_jsonb_opx;a=blobdiff_plain;f=jsonb_opx--1.1.sql;h=132e0cbc634353835f792e2acc98e1f8a9aa5329;hp=95e0807147e00d195076648998d30fae52d2a7fd;hb=HEAD;hpb=4182f8ab210feedbd7d146aa2c6c6fa77ba4962f diff --git a/jsonb_opx--1.1.sql b/jsonb_opx--1.1.sql index 95e0807..132e0cb 100755 --- a/jsonb_opx--1.1.sql +++ b/jsonb_opx--1.1.sql @@ -10,18 +10,43 @@ CREATE OR REPLACE FUNCTION jsonb_delete (jsonb, text) RETURNS jsonb AS 'MODULE_PATHNAME', 'jsonb_delete_key' LANGUAGE C IMMUTABLE STRICT; -COMMENT ON FUNCTION jsonb_delete(jsonb, text) IS 'delete key in second argument from first argument'; +COMMENT ON FUNCTION jsonb_delete(jsonb, text) IS 'delete key or string values in second argument from first argument'; DROP OPERATOR IF EXISTS - (jsonb, text); CREATE OPERATOR - ( PROCEDURE = jsonb_delete, LEFTARG = jsonb, RIGHTARG = text); COMMENT ON OPERATOR - (jsonb, text) IS 'delete key from left operand'; -- + +CREATE OR REPLACE FUNCTION jsonb_delete(jsonb, numeric) +RETURNS jsonb + AS 'MODULE_PATHNAME', 'jsonb_delete_key' +LANGUAGE C IMMUTABLE STRICT; +COMMENT ON FUNCTION jsonb_delete(jsonb, numeric) IS 'delete numeric elements in second argument from first argument'; + +DROP OPERATOR IF EXISTS - (jsonb, numeric); +CREATE OPERATOR - ( PROCEDURE = jsonb_delete, LEFTARG = jsonb, RIGHTARG = numeric); +COMMENT ON OPERATOR - (jsonb, numeric) IS 'delete numeric elements from left operand'; + +-- + +CREATE OR REPLACE FUNCTION jsonb_delete(jsonb, boolean) +RETURNS jsonb + AS 'MODULE_PATHNAME', 'jsonb_delete_key' +LANGUAGE C IMMUTABLE STRICT; +COMMENT ON FUNCTION jsonb_delete(jsonb, boolean) IS 'delete boolean elements in second argument from first argument'; + +DROP OPERATOR IF EXISTS - (jsonb, boolean); +CREATE OPERATOR - ( PROCEDURE = jsonb_delete, LEFTARG = jsonb, RIGHTARG = boolean); +COMMENT ON OPERATOR - (jsonb, boolean) IS 'delete boolean elements from left operand'; + +-- + CREATE OR REPLACE FUNCTION jsonb_delete(jsonb, text[]) RETURNS jsonb AS 'MODULE_PATHNAME', 'jsonb_delete_keys' LANGUAGE C IMMUTABLE STRICT; -COMMENT ON FUNCTION jsonb_delete(jsonb, text[]) IS 'delete keys in second argument from first argument'; +COMMENT ON FUNCTION jsonb_delete(jsonb, text[]) IS 'delete keys or string values in second argument from first argument'; DROP OPERATOR IF EXISTS - (jsonb, text[]); CREATE OPERATOR - ( PROCEDURE = jsonb_delete, LEFTARG = jsonb, RIGHTARG = text[]); @@ -29,6 +54,30 @@ COMMENT ON OPERATOR - (jsonb, text[]) IS 'delete keys from left operand'; -- +CREATE OR REPLACE FUNCTION jsonb_delete(jsonb, numeric[]) +RETURNS jsonb + AS 'MODULE_PATHNAME', 'jsonb_delete_keys' +LANGUAGE C IMMUTABLE STRICT; +COMMENT ON FUNCTION jsonb_delete(jsonb, numeric[]) IS 'delete numeric elements in second argument from first argument'; + +DROP OPERATOR IF EXISTS - (jsonb, numeric[]); +CREATE OPERATOR - ( PROCEDURE = jsonb_delete, LEFTARG = jsonb, RIGHTARG = numeric[]); +COMMENT ON OPERATOR - (jsonb, numeric[]) IS 'delete numeric elements from left operand'; + +-- + +CREATE OR REPLACE FUNCTION jsonb_delete(jsonb, boolean[]) +RETURNS jsonb + AS 'MODULE_PATHNAME', 'jsonb_delete_keys' +LANGUAGE C IMMUTABLE STRICT; +COMMENT ON FUNCTION jsonb_delete(jsonb, boolean[]) IS 'delete boolean elements in second argument from first argument'; + +DROP OPERATOR IF EXISTS - (jsonb, boolean[]); +CREATE OPERATOR - ( PROCEDURE = jsonb_delete, LEFTARG = jsonb, RIGHTARG = boolean[]); +COMMENT ON OPERATOR - (jsonb, boolean[]) IS 'delete boolean elements from left operand'; + +-- + CREATE OR REPLACE FUNCTION jsonb_delete(jsonb, jsonb) RETURNS jsonb AS 'MODULE_PATHNAME', 'jsonb_delete_jsonb' @@ -83,3 +132,10 @@ RETURNS jsonb 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'; +-- + +CREATE OR REPLACE FUNCTION jsonb_append_path(jsonb, text[], jsonb) +RETURNS jsonb + AS 'MODULE_PATHNAME', 'jsonb_append_path' +LANGUAGE C IMMUTABLE STRICT; +COMMENT ON FUNCTION jsonb_append_path(jsonb, text[], jsonb) IS 'follow path of keys in order supplied in array and append to end-point key value pair with supplied jsonb';