@@ -541,11 +541,11 @@ SELECT JSON_VALUE(NULL::jsonb, '$');
541
541
(1 row)
542
542
543
543
SELECT
544
- JSON_QUERY(js, '$'),
545
- JSON_QUERY(js, '$' WITHOUT WRAPPER),
546
- JSON_QUERY(js, '$' WITH CONDITIONAL WRAPPER),
547
- JSON_QUERY(js, '$' WITH UNCONDITIONAL ARRAY WRAPPER),
548
- JSON_QUERY(js, '$' WITH ARRAY WRAPPER)
544
+ JSON_QUERY(js, '$') AS "unspec" ,
545
+ JSON_QUERY(js, '$' WITHOUT WRAPPER) AS "without" ,
546
+ JSON_QUERY(js, '$' WITH CONDITIONAL WRAPPER) AS "with cond" ,
547
+ JSON_QUERY(js, '$' WITH UNCONDITIONAL ARRAY WRAPPER) AS "with uncond" ,
548
+ JSON_QUERY(js, '$' WITH ARRAY WRAPPER) AS "with"
549
549
FROM
550
550
(VALUES
551
551
(jsonb 'null'),
@@ -555,12 +555,12 @@ FROM
555
555
('[1, null, "2"]'),
556
556
('{"a": 1, "b": [2]}')
557
557
) foo(js);
558
- json_query | json_query | json_query | json_query | json_query
558
+ unspec | without | with cond | with uncond | with
559
559
--------------------+--------------------+--------------------+----------------------+----------------------
560
- null | null | [ null] | [null] | [null]
561
- 12.3 | 12.3 | [ 12.3] | [12.3] | [12.3]
562
- true | true | [ true] | [true] | [true]
563
- "aaa" | "aaa" | [ "aaa"] | ["aaa"] | ["aaa"]
560
+ null | null | null | [null] | [null]
561
+ 12.3 | 12.3 | 12.3 | [12.3] | [12.3]
562
+ true | true | true | [true] | [true]
563
+ "aaa" | "aaa" | "aaa" | ["aaa"] | ["aaa"]
564
564
[1, null, "2"] | [1, null, "2"] | [1, null, "2"] | [[1, null, "2"]] | [[1, null, "2"]]
565
565
{"a": 1, "b": [2]} | {"a": 1, "b": [2]} | {"a": 1, "b": [2]} | [{"a": 1, "b": [2]}] | [{"a": 1, "b": [2]}]
566
566
(6 rows)
@@ -587,10 +587,10 @@ FROM
587
587
--------------------+--------------------+---------------------+----------------------+----------------------
588
588
| | | |
589
589
| | | |
590
- null | null | [ null] | [null] | [null]
591
- 12.3 | 12.3 | [ 12.3] | [12.3] | [12.3]
592
- true | true | [ true] | [true] | [true]
593
- "aaa" | "aaa" | [ "aaa"] | ["aaa"] | ["aaa"]
590
+ null | null | null | [null] | [null]
591
+ 12.3 | 12.3 | 12.3 | [12.3] | [12.3]
592
+ true | true | true | [true] | [true]
593
+ "aaa" | "aaa" | "aaa" | ["aaa"] | ["aaa"]
594
594
[1, 2, 3] | [1, 2, 3] | [1, 2, 3] | [[1, 2, 3]] | [[1, 2, 3]]
595
595
{"a": 1, "b": [2]} | {"a": 1, "b": [2]} | {"a": 1, "b": [2]} | [{"a": 1, "b": [2]}] | [{"a": 1, "b": [2]}]
596
596
| | [1, "2", null, [3]] | [1, "2", null, [3]] | [1, "2", null, [3]]
@@ -681,7 +681,7 @@ LINE 1: SELECT JSON_QUERY(jsonb '[1]', '$' WITH CONDITIONAL WRAPPER ...
681
681
SELECT JSON_QUERY(jsonb '["1"]', '$[*]' WITH CONDITIONAL WRAPPER KEEP QUOTES);
682
682
json_query
683
683
------------
684
- [ "1"]
684
+ "1"
685
685
(1 row)
686
686
687
687
SELECT JSON_QUERY(jsonb '["1"]', '$[*]' WITH UNCONDITIONAL WRAPPER KEEP QUOTES);
@@ -940,30 +940,30 @@ FROM
940
940
x | y | list
941
941
---+---+--------------
942
942
0 | 0 | []
943
- 0 | 1 | [1]
943
+ 0 | 1 | 1
944
944
0 | 2 | [1, 2]
945
945
0 | 3 | [1, 2, 3]
946
946
0 | 4 | [1, 2, 3, 4]
947
947
1 | 0 | []
948
- 1 | 1 | [1]
948
+ 1 | 1 | 1
949
949
1 | 2 | [1, 2]
950
950
1 | 3 | [1, 2, 3]
951
951
1 | 4 | [1, 2, 3, 4]
952
952
2 | 0 | []
953
953
2 | 1 | []
954
- 2 | 2 | [2]
954
+ 2 | 2 | 2
955
955
2 | 3 | [2, 3]
956
956
2 | 4 | [2, 3, 4]
957
957
3 | 0 | []
958
958
3 | 1 | []
959
959
3 | 2 | []
960
- 3 | 3 | [3]
960
+ 3 | 3 | 3
961
961
3 | 4 | [3, 4]
962
962
4 | 0 | []
963
963
4 | 1 | []
964
964
4 | 2 | []
965
965
4 | 3 | []
966
- 4 | 4 | [4]
966
+ 4 | 4 | 4
967
967
(25 rows)
968
968
969
969
-- record type returning with quotes behavior.
@@ -1088,7 +1088,7 @@ CREATE TABLE test_jsonb_constraints (
1088
1088
CONSTRAINT test_jsonb_constraint3
1089
1089
CHECK (JSON_VALUE(js::jsonb, '$.a' RETURNING int DEFAULT '12' ON EMPTY ERROR ON ERROR) > i)
1090
1090
CONSTRAINT test_jsonb_constraint4
1091
- CHECK (JSON_QUERY(js::jsonb, '$.a' WITH CONDITIONAL WRAPPER EMPTY OBJECT ON ERROR) < jsonb '[10]')
1091
+ CHECK (JSON_QUERY(js::jsonb, '$.a' WITH CONDITIONAL WRAPPER EMPTY OBJECT ON ERROR) = jsonb '[10]')
1092
1092
CONSTRAINT test_jsonb_constraint5
1093
1093
CHECK (JSON_QUERY(js::jsonb, '$.a' RETURNING char(5) OMIT QUOTES EMPTY ARRAY ON EMPTY) > 'a' COLLATE "C")
1094
1094
);
@@ -1103,7 +1103,7 @@ Check constraints:
1103
1103
"test_jsonb_constraint1" CHECK (js IS JSON)
1104
1104
"test_jsonb_constraint2" CHECK (JSON_EXISTS(js::jsonb, '$."a"' PASSING i + 5 AS int, i::text AS txt, ARRAY[1, 2, 3] AS arr))
1105
1105
"test_jsonb_constraint3" CHECK (JSON_VALUE(js::jsonb, '$."a"' RETURNING integer DEFAULT 12 ON EMPTY ERROR ON ERROR) > i)
1106
- "test_jsonb_constraint4" CHECK (JSON_QUERY(js::jsonb, '$."a"' RETURNING jsonb WITH CONDITIONAL WRAPPER KEEP QUOTES EMPTY OBJECT ON ERROR) < '[10]'::jsonb)
1106
+ "test_jsonb_constraint4" CHECK (JSON_QUERY(js::jsonb, '$."a"' RETURNING jsonb WITH CONDITIONAL WRAPPER KEEP QUOTES EMPTY OBJECT ON ERROR) = '[10]'::jsonb)
1107
1107
"test_jsonb_constraint5" CHECK (JSON_QUERY(js::jsonb, '$."a"' RETURNING character(5) WITHOUT WRAPPER OMIT QUOTES EMPTY ARRAY ON EMPTY) > ('a'::bpchar COLLATE "C"))
1108
1108
1109
1109
SELECT check_clause
@@ -1113,7 +1113,7 @@ ORDER BY 1;
1113
1113
check_clause
1114
1114
----------------------------------------------------------------------------------------------------------------------------------------
1115
1115
(JSON_QUERY((js)::jsonb, '$."a"' RETURNING character(5) WITHOUT WRAPPER OMIT QUOTES EMPTY ARRAY ON EMPTY) > ('a'::bpchar COLLATE "C"))
1116
- (JSON_QUERY((js)::jsonb, '$."a"' RETURNING jsonb WITH CONDITIONAL WRAPPER KEEP QUOTES EMPTY OBJECT ON ERROR) < '[10]'::jsonb)
1116
+ (JSON_QUERY((js)::jsonb, '$."a"' RETURNING jsonb WITH CONDITIONAL WRAPPER KEEP QUOTES EMPTY OBJECT ON ERROR) = '[10]'::jsonb)
1117
1117
(JSON_VALUE((js)::jsonb, '$."a"' RETURNING integer DEFAULT 12 ON EMPTY ERROR ON ERROR) > i)
1118
1118
(js IS JSON)
1119
1119
JSON_EXISTS((js)::jsonb, '$."a"' PASSING (i + 5) AS int, (i)::text AS txt, ARRAY[1, 2, 3] AS arr)
@@ -1143,9 +1143,6 @@ DETAIL: Failing row contains ({"b": 1}, 1, [1, 2]).
1143
1143
INSERT INTO test_jsonb_constraints VALUES ('{"a": 1}', 1);
1144
1144
ERROR: new row for relation "test_jsonb_constraints" violates check constraint "test_jsonb_constraint3"
1145
1145
DETAIL: Failing row contains ({"a": 1}, 1, [1, 2]).
1146
- INSERT INTO test_jsonb_constraints VALUES ('{"a": 7}', 1);
1147
- ERROR: new row for relation "test_jsonb_constraints" violates check constraint "test_jsonb_constraint5"
1148
- DETAIL: Failing row contains ({"a": 7}, 1, [1, 2]).
1149
1146
INSERT INTO test_jsonb_constraints VALUES ('{"a": 10}', 1);
1150
1147
ERROR: new row for relation "test_jsonb_constraints" violates check constraint "test_jsonb_constraint4"
1151
1148
DETAIL: Failing row contains ({"a": 10}, 1, [1, 2]).
0 commit comments