X-Git-Url: https://git.8kb.co.uk/?p=postgresql%2Fpg_jsonb_opx;a=blobdiff_plain;f=jsonb_opx.sql.in;fp=jsonb_opx.sql.in;h=782beffa0c881f1d40dfc69389bea7270ab2af03;hp=0000000000000000000000000000000000000000;hb=8c1743c63b561e0c49fb41be3f837eac46d54aad;hpb=62640eaa675407c0c2ca3ff7d74902df1aaa3583 diff --git a/jsonb_opx.sql.in b/jsonb_opx.sql.in new file mode 100755 index 0000000..782beff --- /dev/null +++ b/jsonb_opx.sql.in @@ -0,0 +1,45 @@ +CREATE OR REPLACE FUNCTION public.jsonb_delete(jsonb, text[]) +RETURNS jsonb + AS 'MODULE_PATHNAME', 'jsonb_delete_text' +LANGUAGE C IMMUTABLE STRICT; +COMMENT ON FUNCTION public.jsonb_delete(jsonb, text[]) IS 'delete keys in second argument from first argument'; + +-- DROP OPERATOR - (jsonb, text[]); +CREATE OPERATOR - ( PROCEDURE = public.jsonb_delete, LEFTARG = jsonb, RIGHTARG = text[]); +COMMENT ON OPERATOR - (jsonb, text[]) IS 'delete keys from left operand'; + +-- + +CREATE OR REPLACE FUNCTION public.jsonb_delete (jsonb, text) +RETURNS jsonb + AS 'SELECT jsonb_delete($1, ARRAY[$2]);' +LANGUAGE SQL IMMUTABLE STRICT; +COMMENT ON FUNCTION public.jsonb_delete(jsonb, text) IS 'delete key in second argument from first argument'; + +-- DROP OPERATOR - (jsonb, text); +CREATE OPERATOR - ( PROCEDURE = public.jsonb_delete, LEFTARG = jsonb, RIGHTARG = text); +COMMENT ON OPERATOR - (jsonb, text) IS 'delete key from left operand'; + +-- + +CREATE OR REPLACE FUNCTION public.jsonb_delete(jsonb, jsonb) +RETURNS jsonb + AS 'MODULE_PATHNAME', 'jsonb_delete_jsonb' +LANGUAGE C IMMUTABLE STRICT; +COMMENT ON FUNCTION public.jsonb_delete(jsonb, jsonb) IS 'delete matching pairs in second argument from first argument'; + +-- DROP OPERATOR - (jsonb, jsonb); +CREATE OPERATOR - ( PROCEDURE = public.jsonb_delete, LEFTARG = jsonb, RIGHTARG = jsonb); +COMMENT ON OPERATOR - (jsonb, jsonb) IS 'delete matching pairs from left operand'; + +-- + +CREATE OR REPLACE FUNCTION public.jsonb_concat(jsonb, jsonb) +RETURNS jsonb + AS 'MODULE_PATHNAME', 'jsonb_concat_jsonb' +LANGUAGE C IMMUTABLE STRICT; +COMMENT ON FUNCTION public.jsonb_concat(jsonb, jsonb) IS 'concatenate first and second jsonb arguments'; + +-- DROP OPERATOR || (jsonb, jsonb); +CREATE OPERATOR || ( PROCEDURE = public.jsonb_concat, LEFTARG = jsonb, RIGHTARG = jsonb); +COMMENT ON OPERATOR || (jsonb, jsonb) IS 'concatenate jsonb types';