Skip to content

Commit 5ea4a81

Browse files
author
Nikita Glukhov
committed
Implement JsonbMutator in jsonb_toaster
1 parent cf98d49 commit 5ea4a81

File tree

10 files changed

+1270
-323
lines changed

10 files changed

+1270
-323
lines changed

contrib/jsonb_toaster/expected/jsonb_toaster.out

Lines changed: 106 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,8 @@ select
129129
j id,
130130
jsonb_build_object(
131131
'a', jsonb_agg(repeat('a', pow(2, 6 + i)::int)),
132-
'b', 'foo'
132+
'b', 'foo',
133+
'c', jsonb_agg(jsonb_build_object('a', repeat('a', pow(2, 6 + i)::int), 'b', 1))
133134
) js
134135
from
135136
generate_series(0, 19) j,
@@ -240,3 +241,107 @@ select id, js->'a'->>0 from test_jsonbz_arr order by id;
240241
19 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
241242
(20 rows)
242243

244+
update test_jsonbz_arr set js = jsonb_set(js, '{c,0,a}', to_jsonb(repeat('b', 64)));
245+
select id, js->'c'->0->>'a' from test_jsonbz_arr order by id;
246+
id | ?column?
247+
----+------------------------------------------------------------------
248+
0 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
249+
1 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
250+
2 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
251+
3 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
252+
4 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
253+
5 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
254+
6 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
255+
7 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
256+
8 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
257+
9 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
258+
10 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
259+
11 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
260+
12 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
261+
13 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
262+
14 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
263+
15 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
264+
16 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
265+
17 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
266+
18 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
267+
19 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
268+
(20 rows)
269+
270+
update test_jsonbz_arr set js = jsonb_set(js, '{c,0,a}', to_jsonb(repeat('c', 64)));
271+
select id, js->'c'->0->>'a' from test_jsonbz_arr order by id;
272+
id | ?column?
273+
----+------------------------------------------------------------------
274+
0 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
275+
1 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
276+
2 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
277+
3 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
278+
4 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
279+
5 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
280+
6 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
281+
7 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
282+
8 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
283+
9 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
284+
10 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
285+
11 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
286+
12 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
287+
13 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
288+
14 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
289+
15 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
290+
16 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
291+
17 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
292+
18 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
293+
19 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
294+
(20 rows)
295+
296+
update test_jsonbz_arr set js = jsonb_set(js, '{c,0,a}', to_jsonb(repeat('d', 65)));
297+
select id, js->'c'->0->>'a' from test_jsonbz_arr order by id;
298+
id | ?column?
299+
----+-------------------------------------------------------------------
300+
0 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
301+
1 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
302+
2 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
303+
3 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
304+
4 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
305+
5 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
306+
6 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
307+
7 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
308+
8 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
309+
9 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
310+
10 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
311+
11 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
312+
12 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
313+
13 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
314+
14 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
315+
15 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
316+
16 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
317+
17 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
318+
18 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
319+
19 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
320+
(20 rows)
321+
322+
update test_jsonbz_arr set js = jsonb_set(js, '{c,0,a}', to_jsonb(repeat('e', 65)));
323+
select id, js->'c'->0->>'a' from test_jsonbz_arr order by id;
324+
id | ?column?
325+
----+-------------------------------------------------------------------
326+
0 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
327+
1 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
328+
2 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
329+
3 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
330+
4 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
331+
5 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
332+
6 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
333+
7 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
334+
8 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
335+
9 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
336+
10 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
337+
11 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
338+
12 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
339+
13 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
340+
14 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
341+
15 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
342+
16 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
343+
17 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
344+
18 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
345+
19 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
346+
(20 rows)
347+

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy