1+ SELECT JSON_OBJECT();
2+ SELECT JSON_OBJECT(RETURNING json);
3+ SELECT JSON_OBJECT(RETURNING json FORMAT JSON);
4+ SELECT JSON_OBJECT(RETURNING jsonb);
5+ SELECT JSON_OBJECT(RETURNING jsonb FORMAT JSON);
6+ SELECT JSON_OBJECT(RETURNING text );
7+ SELECT JSON_OBJECT(RETURNING text FORMAT JSON);
8+ SELECT JSON_OBJECT(RETURNING bytea );
9+ SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON);
10+ SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF8);
11+ SELECT JSON_OBJECT(' a' : 2 + 3 );
12+ SELECT JSON_OBJECT(' a' VALUE 2 + 3 );
13+ SELECT JSON_OBJECT(' a' || 2 : 1 );
14+ SELECT JSON_OBJECT((' a' || 2 ) VALUE 1 );
15+ SELECT JSON_OBJECT(' a' : 2 ::text );
16+ SELECT JSON_OBJECT(' a' VALUE 2 ::text );
17+ SELECT JSON_OBJECT(1 ::text : 2 );
18+ SELECT JSON_OBJECT((1 ::text ) VALUE 2 );
19+ SELECT JSON_OBJECT(
20+ ' a' : ' 123' ,
21+ 1 .23 : 123 ,
22+ ' c' : json ' [ 1,true,{ } ]' ,
23+ ' d' : jsonb ' { "x" : 123.45 }'
24+ );
25+ SELECT JSON_OBJECT(
26+ ' a' : ' 123' ,
27+ 1 .23 : 123 ,
28+ ' c' : json ' [ 1,true,{ } ]' ,
29+ ' d' : jsonb ' { "x" : 123.45 }'
30+ RETURNING jsonb
31+ );
32+ SELECT JSON_OBJECT(' a' : ' 123' , ' b' : JSON_OBJECT(' a' : 111 , ' b' : ' aaa' ));
33+ SELECT JSON_OBJECT(' a' : ' 123' , ' b' : JSON_OBJECT(' a' : 111 , ' b' : ' aaa' RETURNING jsonb));
34+ SELECT JSON_OBJECT(' a' : JSON_OBJECT(' b' : 1 RETURNING text ));
35+ SELECT JSON_OBJECT(' a' : JSON_OBJECT(' b' : 1 RETURNING text ) FORMAT JSON);
36+ SELECT JSON_OBJECT(' a' : JSON_OBJECT(' b' : 1 RETURNING bytea ));
37+ SELECT JSON_OBJECT(' a' : JSON_OBJECT(' b' : 1 RETURNING bytea ) FORMAT JSON);
38+ SELECT JSON_OBJECT(' a' : ' 1' , ' b' : NULL , ' c' : 2 );
39+ SELECT JSON_OBJECT(' a' : ' 1' , ' b' : NULL , ' c' : 2 NULL ON NULL );
40+ SELECT JSON_OBJECT(' a' : ' 1' , ' b' : NULL , ' c' : 2 ABSENT ON NULL );
41+ SELECT JSON_OBJECT(1 : 1 , ' 2' : NULL , ' 1' : 1 ABSENT ON NULL WITHOUT UNIQUE);
42+ SELECT JSON_OBJECT(1 : 1 , ' 2' : NULL , ' 1' : 1 ABSENT ON NULL WITHOUT UNIQUE RETURNING jsonb);
43+ SELECT JSON_OBJECT(1 : 1 , ' 2' : NULL , ' 3' : 1 , 4 : NULL , ' 5' : ' a' ABSENT ON NULL WITH UNIQUE RETURNING jsonb);
44+ SELECT JSON_ARRAY();
45+ SELECT JSON_ARRAY(RETURNING json);
46+ SELECT JSON_ARRAY(RETURNING json FORMAT JSON);
47+ SELECT JSON_ARRAY(RETURNING jsonb);
48+ SELECT JSON_ARRAY(RETURNING jsonb FORMAT JSON);
49+ SELECT JSON_ARRAY(RETURNING text );
50+ SELECT JSON_ARRAY(RETURNING text FORMAT JSON);
51+ SELECT JSON_ARRAY(RETURNING bytea );
52+ SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON);
53+ SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF8);
54+ SELECT JSON_ARRAY(' aaa' , 111 , true, array[1 ,2 ,3 ], NULL , json ' {"a": [1]}' , jsonb ' ["a",3]' );
55+ SELECT JSON_ARRAY(' a' , NULL , ' b' NULL ON NULL );
56+ SELECT JSON_ARRAY(' a' , NULL , ' b' ABSENT ON NULL );
57+ SELECT JSON_ARRAY(NULL , NULL , ' b' ABSENT ON NULL );
58+ SELECT JSON_ARRAY(' a' , NULL , ' b' NULL ON NULL RETURNING jsonb);
59+ SELECT JSON_ARRAY(' a' , NULL , ' b' ABSENT ON NULL RETURNING jsonb);
60+ SELECT JSON_ARRAY(NULL , NULL , ' b' ABSENT ON NULL RETURNING jsonb);
61+ SELECT JSON_ARRAY(JSON_ARRAY(' { "a" : 123 }' RETURNING text ));
62+ SELECT JSON_ARRAY(JSON_ARRAY(' { "a" : 123 }' FORMAT JSON RETURNING text ));
63+ SELECT JSON_ARRAY(JSON_ARRAY(' { "a" : 123 }' FORMAT JSON RETURNING text ) FORMAT JSON);
64+ SELECT JSON_ARRAY(SELECT i FROM (VALUES (1 ), (2 ), (NULL ), (4 )) foo(i));
65+ SELECT JSON_ARRAY(SELECT i FROM (VALUES (NULL ::int []), (' {1,2}' ), (NULL ), (NULL ), (' {3,4}' ), (NULL )) foo(i));
66+ SELECT JSON_ARRAY(SELECT i FROM (VALUES (NULL ::int []), (' {1,2}' ), (NULL ), (NULL ), (' {3,4}' ), (NULL )) foo(i) RETURNING jsonb);
67+ SELECT JSON_ARRAY(SELECT i FROM (VALUES (3 ), (1 ), (NULL ), (2 )) foo(i) ORDER BY i);
68+ SELECT JSON_ARRAYAGG(i) IS NULL ,
69+ JSON_ARRAYAGG(i RETURNING jsonb) IS NULL
70+ FROM generate_series(1 , 0 ) i;
71+ SELECT JSON_ARRAYAGG(i),
72+ JSON_ARRAYAGG(i RETURNING jsonb)
73+ FROM generate_series(1 , 5 ) i;
74+ SELECT JSON_ARRAYAGG(i ORDER BY i DESC )
75+ FROM generate_series(1 , 5 ) i;
76+ SELECT JSON_ARRAYAGG(i::text ::json)
77+ FROM generate_series(1 , 5 ) i;
78+ SELECT JSON_ARRAYAGG(JSON_ARRAY(i, i + 1 RETURNING text ) FORMAT JSON)
79+ FROM generate_series(1 , 5 ) i;
80+ SELECT JSON_ARRAYAGG(NULL ),
81+ JSON_ARRAYAGG(NULL RETURNING jsonb)
82+ FROM generate_series(1 , 5 );
83+ SELECT JSON_ARRAYAGG(NULL NULL ON NULL ),
84+ JSON_ARRAYAGG(NULL NULL ON NULL RETURNING jsonb)
85+ FROM generate_series(1 , 5 );
86+ SELECT
87+ JSON_ARRAYAGG(bar) as no_options,
88+ JSON_ARRAYAGG(bar RETURNING jsonb) as returning_jsonb,
89+ JSON_ARRAYAGG(bar ABSENT ON NULL ) as absent_on_null,
90+ JSON_ARRAYAGG(bar ABSENT ON NULL RETURNING jsonb) as absentonnull_returning_jsonb,
91+ JSON_ARRAYAGG(bar NULL ON NULL ) as null_on_null,
92+ JSON_ARRAYAGG(bar NULL ON NULL RETURNING jsonb) as nullonnull_returning_jsonb,
93+ JSON_ARRAYAGG(foo) as row_no_options,
94+ JSON_ARRAYAGG(foo RETURNING jsonb) as row_returning_jsonb,
95+ JSON_ARRAYAGG(foo ORDER BY bar) FILTER (WHERE bar > 2 ) as row_filtered_agg,
96+ JSON_ARRAYAGG(foo ORDER BY bar RETURNING jsonb) FILTER (WHERE bar > 2 ) as row_filtered_agg_returning_jsonb
97+ FROM
98+ (VALUES (NULL ), (3 ), (1 ), (NULL ), (NULL ), (5 ), (2 ), (4 ), (NULL )) foo(bar);
99+ SELECT
100+ bar, JSON_ARRAYAGG(bar) FILTER (WHERE bar > 2 ) OVER (PARTITION BY foo .bar % 2 )
101+ FROM
102+ (VALUES (NULL ), (3 ), (1 ), (NULL ), (NULL ), (5 ), (2 ), (4 ), (NULL ), (5 ), (4 )) foo(bar);
103+ SELECT JSON_OBJECTAGG(' key' : 1 ) IS NULL ,
104+ JSON_OBJECTAGG(' key' : 1 RETURNING jsonb) IS NULL
105+ WHERE FALSE;
106+ SELECT
107+ JSON_OBJECTAGG(i: i),
108+ JSON_OBJECTAGG(i: i RETURNING jsonb)
109+ FROM
110+ generate_series(1 , 5 ) i;
111+ SELECT
112+ JSON_OBJECTAGG(k: v),
113+ JSON_OBJECTAGG(k: v NULL ON NULL ),
114+ JSON_OBJECTAGG(k: v ABSENT ON NULL ),
115+ JSON_OBJECTAGG(k: v RETURNING jsonb),
116+ JSON_OBJECTAGG(k: v NULL ON NULL RETURNING jsonb),
117+ JSON_OBJECTAGG(k: v ABSENT ON NULL RETURNING jsonb)
118+ FROM
119+ (VALUES (1 , 1 ), (1 , NULL ), (2 , NULL ), (3 , 3 )) foo(k, v);
120+ SELECT JSON_OBJECTAGG(k: v ABSENT ON NULL WITH UNIQUE KEYS)
121+ FROM (VALUES (1 , 1 ), (0 , NULL ), (3 , NULL ), (2 , 2 ), (4 , NULL )) foo(k, v);
122+ EXPLAIN (VERBOSE, COSTS OFF)
123+ SELECT JSON_OBJECT(' foo' : ' 1' FORMAT JSON, ' bar' : ' baz' RETURNING json);
124+ CREATE VIEW json_object_view AS
125+ SELECT JSON_OBJECT(' foo' : ' 1' FORMAT JSON, ' bar' : ' baz' RETURNING json);
126+ DROP VIEW json_object_view;
127+ EXPLAIN (VERBOSE, COSTS OFF)
128+ SELECT JSON_ARRAY(' 1' FORMAT JSON, 2 RETURNING json);
129+ CREATE VIEW json_array_view AS
130+ SELECT JSON_ARRAY(' 1' FORMAT JSON, 2 RETURNING json);
131+ DROP VIEW json_array_view;
132+ EXPLAIN (VERBOSE, COSTS OFF)
133+ SELECT JSON_OBJECTAGG(i: (' 111' || i)::bytea FORMAT JSON WITH UNIQUE RETURNING text ) FILTER (WHERE i > 3 )
134+ FROM generate_series(1 ,5 ) i;
135+ EXPLAIN (VERBOSE, COSTS OFF)
136+ SELECT JSON_OBJECTAGG(i: (' 111' || i)::bytea FORMAT JSON WITH UNIQUE RETURNING text ) OVER (PARTITION BY i % 2 )
137+ FROM generate_series(1 ,5 ) i;
138+ CREATE VIEW json_objectagg_view AS
139+ SELECT JSON_OBJECTAGG(i: (' 111' || i)::bytea FORMAT JSON WITH UNIQUE RETURNING text ) FILTER (WHERE i > 3 )
140+ FROM generate_series(1 ,5 ) i;
141+ DROP VIEW json_objectagg_view;
142+ EXPLAIN (VERBOSE, COSTS OFF)
143+ SELECT JSON_ARRAYAGG((' 111' || i)::bytea FORMAT JSON NULL ON NULL RETURNING text ) FILTER (WHERE i > 3 )
144+ FROM generate_series(1 ,5 ) i;
145+ EXPLAIN (VERBOSE, COSTS OFF)
146+ SELECT JSON_ARRAYAGG((' 111' || i)::bytea FORMAT JSON NULL ON NULL RETURNING text ) OVER (PARTITION BY i % 2 )
147+ FROM generate_series(1 ,5 ) i;
148+ CREATE VIEW json_arrayagg_view AS
149+ SELECT JSON_ARRAYAGG((' 111' || i)::bytea FORMAT JSON NULL ON NULL RETURNING text ) FILTER (WHERE i > 3 )
150+ FROM generate_series(1 ,5 ) i;
151+ DROP VIEW json_arrayagg_view;
152+ EXPLAIN (VERBOSE, COSTS OFF)
153+ SELECT JSON_ARRAY(SELECT i FROM (VALUES (1 ), (2 ), (NULL ), (4 )) foo(i) RETURNING jsonb);
154+ CREATE VIEW json_array_subquery_view AS
155+ SELECT JSON_ARRAY(SELECT i FROM (VALUES (1 ), (2 ), (NULL ), (4 )) foo(i) RETURNING jsonb);
156+ DROP VIEW json_array_subquery_view;
0 commit comments