create schema test_json_array_insert;
set current_schema to 'test_json_array_insert';
SELECT JSON_ARRAY_INSERT('[1, [2, 3], {"a": [4, 5]}]', '$[0]', 0);
json_array_insert
-------------------------------
[0, 1, [2, 3], {"a": [4, 5]}]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3], {"a": [4, 5]}]', '$[2]', 4);
json_array_insert
-------------------------------
[1, [2, 3], 4, {"a": [4, 5]}]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3], {"a": [4, 5]}]', '$[9]', 4);
json_array_insert
-------------------------------
[1, [2, 3], {"a": [4, 5]}, 4]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3], {"a": [4, 5]}]', '$.a', 4);
ERROR: A path expression is not a path to a cell in an array.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('[1, [2, 3], {"a": [4, 5]}]', '$[2]', 'x');
json_array_insert
---------------------------------
[1, [2, 3], "x", {"a": [4, 5]}]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3], {"a": [4, 5]}]', '$[1][0]', 4);
json_array_insert
-------------------------------
[1, [4, 2, 3], {"a": [4, 5]}]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3], {"a": [4, 5]}]', '$[2].a[0]', 4);
json_array_insert
-------------------------------
[1, [2, 3], {"a": [4, 4, 5]}]
(1 row)
SELECT JSON_ARRAY_INSERT('null', '$[2]', 4);
json_array_insert
-------------------
null
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3], {"a": [4, 5]}]', 'null', 4);
ERROR: Invalid JSON path expression. The error is around argument 1.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$[1]', 4);
json_array_insert
-------------------
[1, 4, [2, 3]]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$[0]', 4);
json_array_insert
-------------------
[4, 1, [2, 3]]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$[1][0]', 4);
json_array_insert
-------------------
[1, [4, 2, 3]]
(1 row)
SELECT JSON_ARRAY_INSERT('{"name": "Tim", "hobby": ["car"]}', '$.hobby', 'food');
ERROR: A path expression is not a path to a cell in an array.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('{"name": "Tim", "hobby": ["car"]}', '$.name', 'food');
ERROR: A path expression is not a path to a cell in an array.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('{"name": "Tim", "hobby": ["car"]}', '$.hobby[0]', 'food');
json_array_insert
-------------------------------------------
{"name": "Tim", "hobby": ["food", "car"]}
(1 row)
SELECT JSON_ARRAY_INSERT('[1, 2]', '$[1]', 3);
json_array_insert
-------------------
[1, 3, 2]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, 2]', '$[0]', 3);
json_array_insert
-------------------
[3, 1, 2]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, 2]', '$[1]', 4);
json_array_insert
-------------------
[1, 4, 2]
(1 row)
SELECT JSON_ARRAY_INSERT('{"name": "Tim", "hobby": "car"}', '$.hobby', 'food');
ERROR: A path expression is not a path to a cell in an array.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('{"name": "Tim", "hobby": "car"}', '$.name', 'food');
ERROR: A path expression is not a path to a cell in an array.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('{"name": "Tim", "hobby": "car"}', '$.hobby', 'drink');
ERROR: A path expression is not a path to a cell in an array.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT(null, '$[1]', 4);
json_array_insert
-------------------
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', null, 4);
json_array_insert
-------------------
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$', 4);
ERROR: A path expression is not a path to a cell in an array.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$[3]', 4);
json_array_insert
-------------------
[1, [2, 3], 4]
(1 row)
SELECT JSON_ARRAY_INSERT(null, '$.hobby', 'food');
json_array_insert
-------------------
(1 row)
SELECT JSON_ARRAY_INSERT('{"name": "Tim", "hobby": ["car"]}', null, 'food');
json_array_insert
-------------------
(1 row)
SELECT JSON_ARRAY_INSERT('{"name": "Tim", "hobby": ["car"]}', '$.car', 'food');
ERROR: A path expression is not a path to a cell in an array.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('{"name": "Tim", "hobby": ["car"]}', '$', 'food');
ERROR: A path expression is not a path to a cell in an array.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$[1]', 4, '$[1]', 5);
json_array_insert
-------------------
[1, 5, 4, [2, 3]]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$[1]', null);
json_array_insert
-------------------
[1, null, [2, 3]]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$[1]', true);
json_array_insert
-------------------
[1, true, [2, 3]]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$[1]', '');
json_array_insert
-------------------
[1, "", [2, 3]]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$[1]', json '{"x": 3, "y": [1,2,3]}');
json_array_insert
---------------------------------------
[1, {"x": 3, "y": [1, 2, 3]}, [2, 3]]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$[1]', 1.2);
json_array_insert
-------------------
[1, 1.2, [2, 3]]
(1 row)
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '[1]', 4);
ERROR: Invalid JSON path expression. The error is around argument 1.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$[]', 4);
ERROR: Invalid JSON path expression. The error is around argument 1.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$[1', 4);
ERROR: Invalid JSON path expression. The error is around argument 1.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$.1', 4);
ERROR: Invalid JSON path expression. The error is around argument 1.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$..1', 4);
ERROR: Invalid JSON path expression. The error is around argument 1.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', '$[*]', 4);
ERROR: In this situation, path expressions may not contain the * and ** tokens.
CONTEXT: referenced column: json_array_insert
SELECT JSON_ARRAY_INSERT('[1, [2, 3]]', ' ', 4);
ERROR: Invalid JSON path expression. The error is around argument 1.
CONTEXT: referenced column: json_array_insert
select json_array_insert('{"a":1,"b":{}}', '$[1]', 'add');
json_array_insert
-------------------
{"a": 1, "b": {}}
(1 row)
select json_array_insert('{"a":1,"b":{}}', '$[1]', '35416.878');
json_array_insert
-------------------
{"a": 1, "b": {}}
(1 row)
select json_array_insert('["a",["b","c"],"d"]', '$[1]', 1,'$[2]','{"add":"s"}','$[2][1]',true);
json_array_insert
----------------------------------------------
["a", 1, "{\"add\":\"s\"}", ["b", "c"], "d"]
(1 row)
SELECT JSON_ARRAY_INSERT('{"name": "Tim", "hobby": ["car"]}', '$.hobby', 'food');
ERROR: A path expression is not a path to a cell in an array.
CONTEXT: referenced column: json_array_insert
select json_array_insert('1'::json, '$[1]', '["add","s"]');
json_array_insert
-------------------
1
(1 row)
select json_array_insert('[1]', '$[0]', 341522654875451.12345678901234567890123456789012345678901234567890);
json_array_insert
-------------------------------------------------------------------------
[341522654875451.12345678901234567890123456789012345678901234567890, 1]
(1 row)
create table test_array(v_log_table character varying[]);
insert into test_array values(ARRAY['log1', 'log2']);
select * from test_array;
v_log_table
-------------
{log1,log2}
(1 row)
drop table if exists test_array;
drop schema test_json_array_insert cascade;
reset current_schema;