]> git.8kb.co.uk Git - postgresql/pg_jsonb_opx/blobdiff - jsonb_opx--1.1.sql
Fix some funny behaviour in hstore 1.0 style operators and cease doing anything more...
[postgresql/pg_jsonb_opx] / jsonb_opx--1.1.sql
index 95e0807147e00d195076648998d30fae52d2a7fd..132e0cbc634353835f792e2acc98e1f8a9aa5329 100755 (executable)
@@ -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';